We also use spring-security and ran into some issues as well. What we ended up doing was adding something like this to the JUnit #setUp method
/* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); _tester = new PageTester(_ROOT_PACKAGE_NAME, _APP_MODULE, PageTester.DEFAULT_CONTEXT_PATH, TestHarnessModule.class); _encoder = _tester.getService(ContextPathEncoder.class); Registry registry = _tester.getRegistry(); registry.performRegistryStartup(); UserDetailsService userDetailsSvc = _tester.getService(UserDetailsService.class); UserDetails ud = userDetailsSvc.loadUserByUsername(someuser); handleIfLogIn(); SecurityContext context = new SecurityContextImpl(); Authentication currentUser = new UsernamePasswordAuthenticationToken(ud.getUsername(), somepassword); context.setAuthentication(currentUser); SecurityContextHolder.setContext(context); } Hope that helps.. and if anyone has a better solution please let me know. -Mark PS (sorry for the double post, but wanted to make sure my comment was attached to the appropriate thread) On Mon, Dec 22, 2008 at 10:28 AM, SergeEby <sd...@hotmail.com> wrote: > > Hi, > > This seems to be related to this thread: > http://www.nabble.com/PageLinkTarget%2C-where-did-it-go--to21022001.html#a21022001 > > /Serge > > > Michał Jedynak wrote: >> >> Hi there, >> >> I've integrated spring security to my sample tapestry5 application >> (I'm using version 5.0.18) based on tapestry-spring-security >> (http://www.localhost.nu/java/tapestry-spring-security), but now my >> unit tests that use PageTester don't work, because there is no >> Authentication object in SecurityContext. >> >> I thought about creating SecurityContext, something like: >> >> SecurityContext securityContext = new SecurityContextImpl(); >> User user = new User(); >> user.setId(1L); >> user.setUsername("user"); >> user.setPassword("password"); >> UsernamePasswordAuthenticationToken token = >> new UsernamePasswordAuthenticationToken( >> user.getUsername(), user.getPassword(), user.getAuthorities()); >> token.setDetails(user); >> securityContext.setAuthentication(token); >> >> and adding it to the rendered page through PageTester, as it is >> described in >> http://tapestry.apache.org/tapestry5/guide/unit-testing-pages.html: >> >> PageTester tester = new PageTester(appPackage, appName, >> "src/main/webapp"); >> Object[] context = new Object[]{ "abc", 123 }; >> Document doc = tester.invoke(new ComponentInvocation(new >> PageLinkTarget("MyPage"), context)); >> >> However this doesn't work, ComponentInvocation is an interface and I >> don't know how to initialize properly ComponentInvocationImpl. >> Anyone care to help? >> >> >> >> >> >> -- >> Michał Jedynak >> >> > > -- > View this message in context: > http://www.nabble.com/Tapestry-5-with-Spring-Security---problem-with-unit-tests.-tp21126486p21129652.html > Sent from the Tapestry - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >