Hi,

I got a problem using tapestry-spring-security (
http://www.localhost.nu/java/tapestry-spring-security/ )

I have to override the SaltSourceService because my password database
doesn't use any Salt.

I have added this code to my AppModule :

    public static void contributeAlias(
            Configuration<AliasContribution<?>> configuration) {
        configuration.add(AliasContribution.create(PasswordEncoder.class,
                new Md5PasswordEncoder()));
        configuration.add(AliasContribution.create(SaltSourceService.class,
                new SaltSourceService() {
                    public Object getSalt(UserDetails user) {
                        return "";
                    }
                }));
    }


The SaltSourceService seems to be set this way in the SecurityModule class
from tapestry-spring-security :

    public static void contributeAlias(
            @SpringSecurityServices SaltSourceService saltSource,
            @SpringSecurityServices
UsernamePasswordAuthenticationProcessingFilter
authenticationProcessingFilter,
            Configuration<AliasContribution<?>> configuration ) {

        configuration.add( AliasContribution.create(
SaltSourceService.class, saltSource ) );
        configuration.add( AliasContribution.create(
                UsernamePasswordAuthenticationProcessingFilter.class,
                authenticationProcessingFilter ) );
    }

    @Marker( SpringSecurityServices.class )
    public static SaltSourceService buildSaltSource(
            @Inject @Value( "${spring-security.password.salt}" ) final
String salt ) throws Exception {

        SaltSourceImpl saltSource = new SaltSourceImpl();
        saltSource.setSystemWideSalt( salt );
        saltSource.afterPropertiesSet();
        return saltSource;
    }


The problem is, from one run to another, the initialisation order is maybe
different, and then my SaltSourceService is not used because my AppModule
alias conflics withe the existing one :

org.apache.tapestry5.services.TapestryModule.Alias - Contribution
tapestry.services.appmodul...@fb0c124 (for type
nu.localhost.tapestry5.springsecurity.services.SaltSourceService) conflicts
with existing contribution <Proxy for
SaltSource(nu.localhost.tapestry5.springsecurity.services.SaltSourceService)>
and has been ignored.

But if i stop and run again, it may work because my alias is maybuild built
first :

org.apache.tapestry5.services.TapestryModule.Alias - Contribution <Proxy
for
SaltSource(nu.localhost.tapestry5.springsecurity.services.SaltSourceService)>
(for type nu.localhost.tapestry5.springsecurity.services.SaltSourceService)
conflicts with existing contribution tapestry.services.appmodul...@7333fb54
and has been ignored.

Is there any possiblity to force Tapestry to use my version of the service
?

Thanks.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to