@ -1,23 +1,29 @@
package org.springframework.security.ui.preauth.j2ee ;
package org.springframework.security.ui.preauth.j2ee ;
import org.springframework.security.ui.preauth.PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails ;
import org.springframework.security.ui.preauth.PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails ;
import org.springframework.security.ui.AuthenticationDetailsSourceImpl ;
import org.springframework.security.ui.Web AuthenticationDetailsSource ;
import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesSetter ;
import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesSetter ;
import org.springframework.security.GrantedAuthority ;
import org.springframework.security.GrantedAuthority ;
import org.springframework.security.authoritymapping.Attributes2GrantedAuthoritiesMapper ;
import org.springframework.security.authoritymapping.Attributes2GrantedAuthoritiesMapper ;
import org.springframework.security.authoritymapping.MappableAttributesRetriever ;
import org.springframework.security.authoritymapping.MappableAttributesRetriever ;
import java.util.ArrayList ;
import java.util.ArrayList ;
import java.util.Arrays ;
import javax.servlet.http.HttpServletRequest ;
import javax.servlet.http.HttpServletRequest ;
import org.apache.commons.lang.StringUtils ;
import org.apache.commons.logging.Log ;
import org.apache.commons.logging.Log ;
import org.apache.commons.logging.LogFactory ;
import org.apache.commons.logging.LogFactory ;
import org.springframework.beans.factory.InitializingBean ;
import org.springframework.beans.factory.InitializingBean ;
import org.springframework.util.Assert ;
import org.springframework.util.Assert ;
public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends AuthenticationDetailsSourceImpl implements InitializingBean {
/ * *
* Extended AuthenticationDetailsSource which allows
*
* @author Ruud Senden
* @since 2 . 0
* /
public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends WebAuthenticationDetailsSource implements InitializingBean {
private static final Log logger = LogFactory . getLog ( J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource . class ) ;
private static final Log logger = LogFactory . getLog ( J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource . class ) ;
private String [ ] j2eeMappableRoles ;
private String [ ] j2eeMappableRoles ;
@ -41,18 +47,18 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends Aut
}
}
/ * *
/ * *
* Build the authentication details object . If the spefi cied authentication
* Build the authentication details object . If the specif ied authentication
* details class implements the PreAuthenticatedGrantedAuthoritiesSetter , a
* details class implements the PreAuthenticatedGrantedAuthoritiesSetter , a
* list of pre - authenticated Granted Authorities will be set based on the
* list of pre - authenticated Granted Authorities will be set based on the
* J2EE roles for the current user .
* J2EE roles for the current user .
*
*
* @see org . springframework . security . ui . AuthenticationDetailsSource # buildDetails ( javax . s ervlet . http . HttpServletReques t )
* @see org . springframework . security . ui . AuthenticationDetailsSource # buildDetails ( Ob jec t)
* /
* /
public Object buildDetails ( HttpServletRequest reques t) {
public Object buildDetails ( Object contex t) {
Object result = super . buildDetails ( reques t) ;
Object result = super . buildDetails ( contex t) ;
if ( result instanceof PreAuthenticatedGrantedAuthoritiesSetter ) {
if ( result instanceof PreAuthenticatedGrantedAuthoritiesSetter ) {
( ( PreAuthenticatedGrantedAuthoritiesSetter ) result )
( ( PreAuthenticatedGrantedAuthoritiesSetter ) result )
. setPreAuthenticatedGrantedAuthorities ( getJ2eeBasedGrantedAuthorities ( request ) ) ;
. setPreAuthenticatedGrantedAuthorities ( getJ2eeBasedGrantedAuthorities ( ( HttpSe rvletR equest ) contex t) ) ;
}
}
return result ;
return result ;
}
}
@ -76,8 +82,8 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends Aut
j2eeUserRoles = ( String [ ] ) j2eeUserRolesList . toArray ( j2eeUserRoles ) ;
j2eeUserRoles = ( String [ ] ) j2eeUserRolesList . toArray ( j2eeUserRoles ) ;
GrantedAuthority [ ] userGas = j2eeUserRoles2GrantedAuthoritiesMapper . getGrantedAuthorities ( j2eeUserRoles ) ;
GrantedAuthority [ ] userGas = j2eeUserRoles2GrantedAuthoritiesMapper . getGrantedAuthorities ( j2eeUserRoles ) ;
if ( logger . isDebugEnabled ( ) ) {
if ( logger . isDebugEnabled ( ) ) {
logger . debug ( "J2EE user roles [" + StringUtils . join ( j2eeUserRoles ) + "] mapped to Granted Authorities: ["
logger . debug ( "J2EE user roles [" + j2eeUserRolesList + "] mapped to Granted Authorities: ["
+ StringUtils . join ( userGas ) + "]" ) ;
+ Arrays . asList ( userGas ) + "]" ) ;
}
}
return userGas ;
return userGas ;
}
}