I'm not using it to this extent, but the logic sounds good to me :-)
   Scott

On Sat, 07 May 2005 17:33:34 -0400, Colin Sampaleanu wrote
> Colin Sampaleanu wrote:
> 
> > Ben Alex wrote:
> >
> >> Pursuant to Juergen's recommendation 
> >> (http://article.gmane.org/gmane.comp.java.springframework.devel/8290), 
> >> Acegi Security CVS has now had its ContextHolder and related classes 
> >> removed. This functionality has been replaced by SecurityContext, 
> >> which is an InheritableThreadLocal that provides a single 
> >> getter/setter pair for Authentication.
> >>
> >> This is a significant change for end users, but offers a number of 
> >> benefits:
> >>
> >> - Consistency with Spring core's use of a concrete ThreadLocal per 
> >> functional area
> >> - SecurityContext is strictly typed (which eliminates the need for 
> >> casting)
> >> - Simplified configuration as no need to specify a Context 
> >> implementation for HttpSessionContextIntegrationFilter
> >> - InheritableThreadLocal used instead of ThreadLocal to simplify rich 
> >> client usage (see http://forum.springframework.org/viewtopic.php?t=5004)
> >> - Elimination of handling the extra Context layer means less end user 
> >> code is required
> >>
> >> Unit tests pass and I've updated the upgrade-080-090.txt in some 
> >> detail. The reference guide has also been updated.
> >>
> >> It would be appreciated if developers could try the latest CVS with 
> >> their applications and report any difficulties. General feedback on 
> >> this change is also welcome.
> >
> >
> > As I read Juergen's suggestion, I thought he was just suggesting to go 
> > away from the ContextHolder with abitlity to hold a generic Context, 
> > as it is potentially confusing as to what is going to go in there. So 
> > he suggested a SecurityContextHolder which needs to hold a 
> > SecurityContext.
> >
> > However, it seems to me that this simplification is much more than 
> > that, and may have gone too far, as it's all been collapsed into the 
> > one SecurityContext which is the threadlocal (effectively) and holds 
> > the Authentication. Unless I'm missing something it would still be of 
> > real use to have a real SecurityContextHolder which holds a pluggable 
> > SecurityContext. Then people can subclass that if needed to add extra 
> > data. The difference from before however is that now it is clearly 
> > security focused, and the lifecycle of the object is managed clearly 
> > by Acegi.
> >
> > What does everybody think?
> >
> As a follow-up, from memory (it's been about a year) I believe I 
> used a custom SecureContext to also pass along some EJB related 
> security information (principal name, or the ejb run-as user)
>  between different layers along with the Acegi specific info. The 
> app in question was a mixed EJB and Spring app, using the EJB 
> version of OSWorkflow.
> 
> In general, I think if by default the user does not have to specify 
> the actual SecurityContext implementation class unless they want to 
> override it, and the SecurityContextHolder ensures there is always a 
> SecureContext (throwing an exception if it's set to null), then even 
> with the separate SecurityContextContextHolder and 
> SecurityContextContext, it's still way less verbose than the old 
> classes, and just about as convenient to use as with the completely 
> collapsed version, i.e.    SecurityContextHolder.getSecurityContext()
> .getAuthentication();
> 
> This essentially allows users to associate any information that 
> logically belongs with the current security context with the context,
>  and it is clear that the lifecycle of the security context is 
> managed by Acegi Security, unlike the old classes. Ben has pointed 
> out that you can always use a custom UserDetails implementation. 
> This is true, but implicates AuthenticationDao and the UserDetails 
> impl. where they shouldn't necessarilly be implicated.
> 
> Colin
> 
> -- 
> Colin Sampaleanu
> Interface21 Principal Consultant
> Spring Training, Consulting and Support - "From the Source"
> http://www.springframework.com
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: NEC IT Guy Games.
> Get your fingers limbered up and give it your best shot. 4 great 
> events, 4 opportunities to win big! Highest score wins.NEC IT Guy 
> Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?
r=20
> _______________________________________________
> Home: http://acegisecurity.sourceforge.net
> Acegisecurity-developer mailing list
> Acegisecurity-developer@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer



-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
Home: http://acegisecurity.sourceforge.net
Acegisecurity-developer mailing list
Acegisecurity-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acegisecurity-developer

Reply via email to