Garet,
OK ... the only place I find a reference to Authentication.getDetails is in
the getUser method in UserSecurityAdvice.java:

    private User getCurrentUser(Authentication auth) {
        User currentUser;
        if (auth.getPrincipal() instanceof UserDetails) {
            currentUser = (User) auth.getPrincipal();
        } else if (auth.getDetails() instanceof UserDetails) {
            currentUser = (User) auth.getDetails();
        } else {
            throw new AccessDeniedException("User not properly
authenticated.");
        }
        return currentUser;
    }

I can see that I could work checking for "auth.getDetails() instanceof
WebAuthenticationDetails" in, though some of the combinations do not make
any sense - I would end up with the IP address (property RemoteAddress on
the WebAuthenticationDetails object) but no currentUser.

Currently the User.java implements interface UserDetails. Would I need to
use a different class instead, once that contained both User and a String
for the IP address?

Or am I just missing the boat completely. I've been working with the old
ActionFilter and ThreadLocal mechanism for some time - but was hoping to get
away from that for my new set of apps.

Thanks again - Richard


Gareth Davis wrote:
> 
> just been poking around in the SecurityContext holder and that the  
> contents of Authenciation.getDetails() will actually be a  
> org.acegisecurity.ui.WebAuthenticationDetails from acegi...and guess  
> what that contains... one ip address.
> 
> no need for the complex filter thread local thing, just use the  
> SecurityContextHolder to get the authentication details.
> 
> Garet
> 
> On 4 Feb 2008, at 11:54, Rob Hills wrote:
> 
>> Hi Richard,
>>
>> [EMAIL PROTECTED] wrote:
>>> Here's what I ended up with:
>>>
>> That all sounded pretty good to me.
>>> Question:
>>> But I'm not sure how to get either the session or request from the
>>> ServletContext object - it does not list those properties - unless  
>>> its just
>>> too late and I'm not looking carefully.
>>>
>> No, I wouldn't say that.  Not sure exactly where I got the following  
>> from, but this is my getRequest() method from my event interceptor  
>> class.  From memory, it is dependent on having the ServletContext  
>> injected into the bean, but I may be wrong about that.  The key  
>> point is, it works and i didn't have time to experiment with it at  
>> the time :-)
>>
>>   private HttpServletRequest getRequest() {
>>       return (HttpServletRequest) ((ServletRequestAttributes)  
>> RequestContextHolder.getRequestAttributes()).getRequest();
>>   }
>> HTH,
>>
>> Rob Hills
>> Waikiki, Western Australia
>>
>> ---------------------------------------------------------------------
>> 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://www.nabble.com/How-to-get-authentication-info-into-a-Spring-bean---Hibernate-interceptor-tp15247474s2369p15273716.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


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

Reply via email to