Service id 'authenticationProvider' is not defined by any module
My appModule.java is as below
public class AppModule
{
public static void bind(ServiceBinder binder)
{
binder.bind(com.eveo.edetail.reporting.service.UserDetailsService.class,
UserDetailsServiceImpl.class).withId("UserDetailsServiceImpl");
binder.bind(SaltSourceService.class,
SaltSourceImpl.class).withId("SaltSourceImpl");
}
public static SaltSourceService buildMySaltSource() throws Exception {
SaltSourceImpl saltSource = new SaltSourceImpl();
saltSource.setSystemWideSalt("DEADBEEF");
saltSource.afterPropertiesSet();
return saltSource;
}
public static UserDetailsService buildUserDetailsService(UserDao
userDao) {
return new
com.eveo.edetail.reporting.service.impl.UserDetailsServiceImpl(userDao);
}
public static void contributeProviderManager(
OrderedConfiguration configuration,
@InjectService("DaoAuthenticationProvider")
AuthenticationProvider daoAuthenticationProvider) {
System.out.println("AppModule: contributeProviderManager" +
configuration);
System.out.println(">>"+daoAuthenticationProvider);
configuration.add("daoAuthenticationProvider",
daoAuthenticationProvider);
}
public static AuthenticationProcessingFilter
buildMyAuthenticationProcessingFilter(
@AcegiServices final AuthenticationManager manager,
@AcegiServices final RememberMeServices rememberMeServices,
@Inject @Value("${acegi.check.url}") final String authUrl,
@Inject @Value("${acegi.target.url}") final String targetUrl,
@Inject @Value("${acegi.failure.url}") final String failureUrl)
throws Exception {
System.out.println("Auth URL"+ authUrl );
AuthenticationProcessingFilter filter = new
AuthenticationProcessingFilter();
filter.setAuthenticationManager(manager);
filter.setAuthenticationFailureUrl(failureUrl);
filter.setDefaultTargetUrl(targetUrl);
filter.setFilterProcessesUrl(authUrl);
filter.setRememberMeServices(rememberMeServices);
filter.afterPropertiesSet();
return filter;
}
public static void contributeAliasOverrides(
@InjectService("MySaltSource")
SaltSourceService saltSource,
@InjectService("MyAuthenticationProcessingFilter")
AuthenticationProcessingFilter
authenticationProcessingFilter,
Configuration configuration) {
System.out.println("AppModule: contributeAliasOverrides" +
configuration);
configuration.add(AliasContribution.create(SaltSourceService.class,saltSource));
configuration.add(AliasContribution.create(AuthenticationProcessingFilter.class,authenticationProcessingFilter));
}
public static LoginHelper
buildLoginHelper(@InjectService("MySaltSource") SaltSourceService
saltSource, PasswordEncoder encrypter ,
AuthenticationManager
authManager) {
return new AcegiLoginHelper(authManager,saltSource,encrypter);
//return new AcegiLoginHelper(authManager);
}
public static void
contributeApplicationDefaults(MappedConfiguration
configuration){
configuration.add(SymbolConstants.SUPPORTED_LOCALES, "en");
configuration.add(SymbolConstants.PRODUCTION_MODE, "false");
configuration.add("acegi.failure.url", "/error");
configuration.add("acegi.password.encoder",
"org.acegisecurity.providers.encoding.PlaintextPasswordEncoder");
configuration.add("acegi.target.url", "/Program");
}
/**
* This is a service definition, the service will be named
"TimingFilter". The interface,
* RequestFilter, is used within the RequestHandler service pipeline,
which is built from the
* RequestHandler service configuration. Tapestry IoC is responsible for
passing in an
* appropriate Logger instance. Requests for static resources are
handled at a higher level, so
* this filter will only be invoked for Tapestry related requests.
*
*
* Service builder methods are useful when the implementation is inline
as an inner class
* (as here) or require some other kind of special initialization. In
most cases,
* use the static bind() method instead.
*
*
* If this method was named "build", then the service id would be taken
from the
* service interface and would be "RequestFilter". Since Tapestry
already defines
* a