As the name says, the sample application does declare the UserDetailsService. Look at nu.localhost.tapestry5.springsecuritytest.services.TestsecurityModule there you'll find the build method

public static UserDetailsService buildUserDetailsService( @Inject
   PasswordEncoder encoder, @Inject
   SaltSource salt ) {

       return new MyUserDetailsService( encoder, salt );
   }

This module is in fact using the SpringSecurityModule like you'll probably do.

manuel aldana schrieb:
Thiago H. de Paula Figueiredo schrieb:
Em Sun, 08 Mar 2009 18:09:29 -0300, manuel aldana <ald...@gmx.de> escreveu:

Exception constructing service 'RememberMeServices': Error invoking service builder method nu.localhost.tapestry5.springsecurity.services.SecurityModule.build(UserDetailsService, String) (at SecurityModule.java:303) (for service 'RememberMeServices'): No service implements the interface org.springframework.security.userdetails.UserDetailsService. It does not find the UserDetailsService implementation though I placed one inside <rootPackage>.services.internal. Does somebody know how tapestry spring-security plugin looks for the implementation?

It looks it up via Tapestry-IoC. Actually, this error messages is given by T-IoC, not Tapestry-Spring Security yourself. Just make sure you declare your UserDetailsService implementation as a service in your AppModule class (or any other Tapestry-IoC module).
Yes, you're right adding this interface->implementation mapping to AppModule made it work.

But I wonder why it works in the sample application from the tapestry-spring-security module, which has no AppModule defined. I guess then some tapestry magic comes in place (maybe scanning for implementors of interfaces...).



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to