thanks for the advise, if T5's acegi can cover up much of the hardwork, i
guess i'll go for it. thanks again for the feedback.

regards,
wesley 



Jonathan Barker wrote:
> 
> 
> Please note that Spring Security is the successor to Acegi Security.  My
> experience is with Acegi but you should probably invest the time in
> learning
> Spring Security.  They have definitely changed how they configure things.
> 
> With my old T4 apps, using Acegi configured via Spring, but also using my
> own custom components (one of which behaved like IfRole) I had this in my
> web.xml:
> 
> 
>       <filter>
>               <filter-name>Acegi Filter Chain Proxy</filter-name>
>       
> <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
>               <init-param>
>                       <param-name>targetClass</param-name>
>       
> <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
>               </init-param>
>       </filter>
>       <filter-mapping>
>               <filter-name>Acegi Filter Chain Proxy</filter-name>
>               <url-pattern>/*</url-pattern>
>       </filter-mapping>
> 
> That was before my OpenSessionInView filter for Hibernate.  There was also
> a
> listener:
> 
>       <listener>
>       
> <listener-class>org.acegisecurity.ui.session.HttpSessionEventPublisher</list
> ener-class>
>       </listener>
> 
> 
> In my applicationContext-acegi.xml file, I had:
> 
>               <bean id="filterChainProxy"
> class="org.acegisecurity.util.FilterChainProxy">
>               <property name="filterInvocationDefinitionSource">
>               <value>
>               CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
>               PATTERN_TYPE_APACHE_ANT
>       
> /**=httpSessionContextIntegrationFilter,httpRequestIntegrationFilter
>               </value>
>               </property>
>               </bean>
> 
>    <bean id="httpRequestIntegrationFilter"
> class="org.acegisecurity.adapters.HttpRequestIntegrationFilter"/>
> 
>    <bean id="httpSessionContextIntegrationFilter"
> class="org.acegisecurity.context.HttpSessionContextIntegrationFilter">
>       
>    </bean>
> 
> As well as configurations for AuthenticationProvider.
> 
> All of that configuration goes away if you use tapestry5-acegi, or to be
> more accurate, most of what you need is already set up in the
> SecurityModule
> class.  Things like the HttpSessionContextIntegrationFilter were
> re-written
> to fit into the Tapestry processing pipeline.  Take a look at the source
> for
> SecurityModule.
> 
> 
> If you still want to set it up through Spring, then make sure your
> FilterToBeanProxy is defined before your TapestrySpringFilter.
> 
> 
> 
>> -----Original Message-----
>> From: wesley [mailto:[EMAIL PROTECTED]
>> Sent: Wednesday, October 08, 2008 00:06
>> To: users@tapestry.apache.org
>> Subject: RE: spring T5 integration on acegi security considerations
>> 
>> 
>> hi jon,
>> 
>> since i'm integrating the spring as back end and front end as T5, the
>> filter
>> that i'm using is TapestrySpringFilter as outline by the wiki from t5
>> homepage.
>> 
>> "For access to pages, you either configure a filter through Spring, or
>> through annotations, or through tapestry-ioc configuration.  The filters
>> will invoke the necessary authentication and authorization functions."
>> 
>> as outline, i'm using tapestryspringfilter; with filter that accept
>> filter
>> mapping of url pattern of /*. is there gonna be a same configuration on
>> this
>> filter as well? please advise and thanks
>> 
>> regards,
>> wesley
>> 
>> 
>> 
>> Jonathan Barker wrote:
>> >
>> > Wesley,
>> >
>> > I would rather spend two hours figuring out how to use a well thought
>> out
>> > /
>> > designed / tested tool that will pay off in the long haul than spend
>> one
>> > hour doing a one-off solution to an immediate problem.  I didn't save
>> time
>> > the first time I used Acegi, but I really do save time now.
>> >
>> > Acegi is like a well equipped toolbox.
>> >
>> > For password encryption, Acegi provides several classes that implement
>> the
>> > PasswordEncoder interface.  These include PlaintextPasswordEncoder,
>> > MessageDigestPAsswordEncoder, Md5PasswordEncoder, and a few others. 
>> You
>> > would pick one of these and use it to configure your
>> UserDetailsService,
>> > and
>> > you can also use it directly to encode a password to store for
>> yourself.
>> >
>> > You frequently want to use a password Salt, so there is a
>> > SystemWideSaltSource where everyone gets the same salt, or a
>> > ReflectionSaltSource that can read a property that you would store with
>> > your
>> > User record.  You would configure your UserDetailsService to use a Salt
>> > source.
>> >
>> > For access to pages, you either configure a filter through Spring, or
>> > through annotations, or through tapestry-ioc configuration.  The
>> filters
>> > will invoke the necessary authentication and authorization functions.
>> >
>> > You don't generally override authenticate(), because you would use one
>> of
>> > the dozen implementations of the AuthenticationProvider interface that
>> > ship
>> > with Acegi.  I typically use the LDAPAuthenticationProvider and the
>> > DaoAuthenticationProvider.  Of course, each of these needs to be
>> > configured
>> > somehow.  For example, you need to have a UserDetailsService configured
>> > for
>> > the DaoAuthenticationProvider.
>> >
>> > Jonathan
>> >
>> >
>> >
>> >
>> >> -----Original Message-----
>> >> From: wesley [mailto:[EMAIL PROTECTED]
>> >> Sent: Monday, October 06, 2008 12:54
>> >> To: users@tapestry.apache.org
>> >> Subject: RE: spring T5 integration on acegi security considerations
>> >>
>> >>
>> >> hi Jon,
>> >>
>> >> thanks much for the feedback, i assumed acegi will do all hard
>> >> work/encapsulate those like password encryption login and other
>> >> unauthorized
>> >> access to the pages? because with normal implementation, i need to do
>> one
>> >> way encrypt myself to authenticate user for example. does acegi do
>> that?,
>> >> i
>> >> mean the authenticate method; do i need to override it myself for
>> >> encryption
>> >> purposes? please advise, thanks
>> >>
>> >> wesley
>> >>
>> >>
>> >>
>> >> Jonathan Barker wrote:
>> >> >
>> >> >
>> >> > I remember going through the Acegi documentation the first time.  It
>> >> was
>> >> > daunting.
>> >> >
>> >> > In hindsight, it boils down to this:
>> >> >
>> >> > The central object in Acegi is the SecurityContext.  You need to
>> store
>> >> and
>> >> > retrieve it from your HttpSession and that is done either through a
>> >> filter
>> >> > configured in web.xml (for a Spring-configured scenario), or as a
>> part
>> >> of
>> >> > a
>> >> > Tapestry filter chain (for tapestry5-acegi).
>> >> >
>> >> > You need to configure at least one AuthenticationProvider using a
>> >> > UserDetailsService, and pass it to the AuthenticationManager.  I
>> like
>> >> the
>> >> > InMemoryDaoImpl as the UserDetailsService for initial development,
>> and
>> >> a
>> >> > way
>> >> > of embedding special administrative accounts.  Don't waste time
>> reading
>> >> > about all of the options for this service.  Know that later you can
>> add
>> >> > additional AuthenticationProviders to have multiple authentication
>> >> > methods.
>> >> >
>> >> > The AuthenticationProvider can be invoked manually (by injecting it
>> >> into
>> >> > your page, and calling methods like authenticate()), or via a
>> specific
>> >> jsp
>> >> > page.
>> >> >
>> >> > For example, and this can be handy for testing, you can do this:
>> >> >
>> >> >         @Inject
>> >> >         private AuthenticationManager _authenticationManager;
>> >> >
>> >> > ...
>> >> >
>> >> >                 UsernamePasswordAuthenticationToken authRequest =
>> >> >                         new
>> >> > UsernamePasswordAuthenticationToken(_username,_password);
>> >> >                 Authentication authResult;
>> >> >
>> >> >                 try {
>> >> >                         System.out.println("username:" + _username + "
>> >> > password: " + _password);
>> >> >                         authResult =
>> >> > _authenticationManager.authenticate(authRequest);
>> >> >                         logger.info("successful login for: " + 
>> >> > _username);
>> >> >                 } catch (BadCredentialsException failed) {
>> >> >                         _form.recordError(_passwordField, "Invalid 
>> >> > username
>> >> > or password");
>> >> >                         logger.info("bad password for: " + _username);
>> >> >                         return null;
>> >> >                 } catch (AuthenticationException failed) {
>> >> >                         _form.recordError(_passwordField, "Invalid 
>> >> > username
>> >> > or password");
>> >> >                         logger.info("failed login for: " + _username);
>> >> >                         return null;
>> >> >                 }
>> >> >
>> >> >
>> >> > SecurityContextHolder.getContext().setAuthentication(authResult);
>> >> >
>> >> >
>> >> > Then you need to enforce security (authorize).  This can be
>> directly,
>> >> by
>> >> > getting the SecurityContext and asking for the Authentication
>> object,
>> >> and
>> >> > then getting a list of GrantedAuthorities and working with that.
>> (Read
>> >> the
>> >> > code for the tapestry5-acegi IfRole component if you want to see
>> what
>> I
>> >> > mean). Or, it can be done using Spring configured filters for URL
>> >> > patterns,
>> >> > or tapestry5-acegi filters for pages or patterns.
>> >> >
>> >> > It's only daunting if you look at it all at once.
>> >> >
>> >> >
>> >> > Jonathan
>> >> >
>> >> >
>> >> >> -----Original Message-----
>> >> >> From: wesley [mailto:[EMAIL PROTECTED]
>> >> >> Sent: Sunday, October 05, 2008 12:37
>> >> >> To: users@tapestry.apache.org
>> >> >> Subject: RE: spring T5 integration on acegi security considerations
>> >> >>
>> >> >>
>> >> >> hi,
>> >> >>
>> >> >> thanks for the feedback, as long as the pages are secure and can
>> >> prevent
>> >> >> unauthorized users from logging in i'm open for any options.
>> >> previously
>> >> >> what
>> >> >> i did was quite traditional, implementing a one way password
>> >> encryption,
>> >> >> setting keystore and config within tomcat container. to me acegi is
>> >> like
>> >> >> a
>> >> >> huge topic and mass complexion to implement. so when come to the
>> >> decision
>> >> >> on
>> >> >> implementing it is really a challenge to me. the tutorials are
>> great
>> >> but
>> >> >> mostly aim at T5 alone (which is normal). but within my
>> implementation
>> >> >> where
>> >> >> it is an integrated environment, i really have no idea which one
>> >> should
>> >> i
>> >> >> choose.
>> >> >>
>> >> >>
>> >> >> Jonathan Barker wrote:
>> >> >> >
>> >> >> >
>> >> >> > It depends on your needs.  The tapestry5-acegi or
>> tapestry-spring-
>> >> >> security
>> >> >> >
>> (http://www.localhost.nu/java/tapestry-spring-security/index.html)
>> >> are
>> >> >> > probably easier to drop in.  The Spring-configured route might be
>> >> >> better
>> >> >> > if
>> >> >> > your application includes other servlets or filters.
>> >> >> >
>> >> >> > Either way you will be able to get access to things like the
>> >> >> > AuthenticationManager if you need to from your page classes.
>> >> >> >
>> >> >> > With an older T4 app, I used Spring / Hibernate / Acegi with
>> Acegi
>> >> >> > configured via Spring.  I also rolled a few components: Authorize
>> >> and
>> >> >> > AclAuthorize.
>> >> >> >
>> >> >> > With the T5 apps I now do, I use a slightly modified tapestry5-
>> acegi
>> >> >> > although I still use Spring for DAO's and some services.  Parts
>> of
>> >> my
>> >> >> old
>> >> >> > Authorize component are now included in the tapestry5-acegi
>> IfRole
>> >> >> > component.
>> >> >> >
>> >> >> > Actually, I think tapestry5-acegi and its successor would benefit
>> >> from
>> >> >> > being
>> >> >> > split in two: one piece for the annotations, components and
>> >> supporting
>> >> >> > pieces that are specific to Tapestry, and the second piece to
>> allow
>> >> for
>> >> >> a
>> >> >> > choice of configuration via Spring, or configuration via
>> tapestry-
>> >> ioc.
>> >> >> >
>> >> >> > Whichever way you choose, it's better than re-inventing the wheel
>> >> and
>> >> >> > rolling your own security.
>> >> >> >
>> >> >> > Jonathan
>> >> >> >
>> >> >> >
>> >> >> >> -----Original Message-----
>> >> >> >> From: wesley [mailto:[EMAIL PROTECTED]
>> >> >> >> Sent: Friday, October 03, 2008 10:59
>> >> >> >> To: users@tapestry.apache.org
>> >> >> >> Subject: spring T5 integration on acegi security considerations
>> >> >> >>
>> >> >> >>
>> >> >> >> hi all,
>> >> >> >>
>> >> >> >> i've been implementing a project by using T5 mostly as front
>> end,
>> >> >> spring
>> >> >> >> framework for back(eg Dao and db operations). after few search
>> on
>> >> it
>> >> >> >> regarding the acegi implementation, i'm a little bit confused as
>> >> >> whether
>> >> >> >> or
>> >> >> >> not to implement this security framework on T5 or spring. any
>> >> >> >> recommendations or advise on this topic? should i just apply
>> this
>> >> >> >> security
>> >> >> >> layer on T5 alone? or Spring 2 for securing the backend or
>> both??
>> >> >> >>
>> >> >> >> please advise, thanks
>> >> >> >>
>> >> >> >> wesley
>> >> >> >> --
>> >> >> >> View this message in context: http://n2.nabble.com/spring-T5-
>> >> >> integration-
>> >> >> >> on-acegi-security-considerations-tp1142158p1142158.html
>> >> >> >> Sent from the Tapestry Users mailing list archive at Nabble.com.
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> --------------------------------------------------------------------
>> >> -
>> >> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >> >
>> >> >> >
>> >> >> >
>> >> ---------------------------------------------------------------------
>> >> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >>
>> >> >> --
>> >> >> View this message in context: http://n2.nabble.com/spring-T5-
>> >> integration-
>> >> >> on-acegi-security-considerations-tp1142158p1299013.html
>> >> >> Sent from the Tapestry Users mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >>
>> --------------------------------------------------------------------
>> -
>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >
>> >> >
>> >> >
>> ---------------------------------------------------------------------
>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >> >
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context: http://n2.nabble.com/spring-T5-
>> integration-
>> >> on-acegi-security-considerations-tp1142158p1301362.html
>> >> Sent from the Tapestry Users mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> >> For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: [EMAIL PROTECTED]
>> > For additional commands, e-mail: [EMAIL PROTECTED]
>> >
>> >
>> >
>> 
>> --
>> View this message in context: http://n2.nabble.com/spring-T5-integration-
>> on-acegi-security-considerations-tp1142158p1305594.html
>> Sent from the Tapestry Users mailing list archive at Nabble.com.
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://n2.nabble.com/spring-T5-integration-on-acegi-security-considerations-tp1142158p1305901.html
Sent from the Tapestry Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to