I am a newbie to tapestry, i am getting NullPointerException when i access authManager. How do i inject AuthManager?
Chandra ChandraB wrote: > > 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<AuthenticationProvider> 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<AliasContribution> 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<String, String> > 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. > * > * <p> > * 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. > * > * <p> > * 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 service named "RequestFilter" we use an explicit service id that > we can reference > * inside the contribution method. > */ > public RequestFilter buildTimingFilter(final Logger log) > { > return new RequestFilter() > { > public boolean service(Request request, Response response, > RequestHandler handler) > throws IOException > { > long startTime = System.currentTimeMillis(); > > try > { > // The responsibility of a filter is to invoke the > corresponding method > // in the handler. When you chain multiple filters > together, each filter > // received a handler that is a bridge to the next > filter. > > return handler.service(request, response); > } > finally > { > long elapsed = System.currentTimeMillis() - startTime; > > log.info(String.format("Request time: %d ms", > elapsed)); > } > } > }; > } > > > -- View this message in context: http://www.nabble.com/Error-while-launching-Login-page-tp23164519p23165434.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