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

Reply via email to