Re: Error while launching Login page
You just set up your security context as usual with spring. Define the beans you need for userDetailsService (or other authenticationProvider), saltSource, encoder, rememberMe etc. and fire up the spring security namespace config. This is described in great detail in the Spring security docs as well as database table setup. A simple example with hierarchical roles in one hierarchy and remember me services might look like this: http://www.springframework.org/schema/beans"; xmlns:s="http://www.springframework.org/schema/security"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:context="http://www.springframework.org/schema/context"; xmlns:util="http://www.springframework.org/schema/util"; xmlns:tx="http://www.springframework.org/schema/tx"; xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd";> ROLE_ADMIN > ROLE_MANAGER ROLE_MANAGER > ROLE_EDITOR ROLE_EDITOR > ROLE_AUTHOR ROLE_AUTHOR > ROLE_USER ROLE_USER > ROLE_ANONYMOUS You need the passwordEncoder and saltSource beans mainly for encoding the clear text passwords entered on registering a new user or when setting new passwords. Now you only have to use the Tapestry-Spring integration and it works. The only minor problem - depending on your app - is the login and logout handling. You can make a form around the cookie cutter Spring security hooks or dice your own. You can find examples here on the mailinglist. 2009/4/22 Borut Bolčina > Can you give an example? > > -Borut >
Re: Error while launching Login page
>> 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 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 >> > >> > >> >> - >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> > - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Error while launching Login page
onfiguration.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 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 > > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > >
Re: Error while launching Login page
.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 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 > > - To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org
Re: Error while launching Login page
* 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 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
Error while launching Login page
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 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-tp23164519p23164519.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