Class SecurityExpressionRoot
- java.lang.Object
 - 
- org.springframework.security.access.expression.SecurityExpressionRoot
 
 
- 
- All Implemented Interfaces:
 SecurityExpressionOperations
- Direct Known Subclasses:
 MessageSecurityExpressionRoot,WebSecurityExpressionRoot
public abstract class SecurityExpressionRoot extends java.lang.Object implements SecurityExpressionOperations
Base root object for use in Spring Security expression evaluations.- Since:
 - 3.0
 
 
- 
- 
Field Summary
Fields Modifier and Type Field Description java.lang.Stringadminprotected Authenticationauthenticationjava.lang.Stringcreatejava.lang.StringdeletebooleandenyAllAllows "denyAll" expressionbooleanpermitAllAllows "permitAll" expressionjava.lang.Stringreadjava.lang.Stringwrite 
- 
Constructor Summary
Constructors Constructor Description SecurityExpressionRoot(Authentication authentication)Creates a new instance 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleandenyAll()Always denies accessAuthenticationgetAuthentication()Gets theAuthenticationused for evaluating the expressionsjava.lang.ObjectgetPrincipal()Convenience method to accessAuthentication.getPrincipal()fromgetAuthentication()booleanhasAnyAuthority(java.lang.String... authorities)Determines if theSecurityExpressionOperations.getAuthentication()has any of the specified authorities withinAuthentication.getAuthorities().booleanhasAnyRole(java.lang.String... roles)Determines if theSecurityExpressionOperations.getAuthentication()has any of the specified authorities withinAuthentication.getAuthorities().booleanhasAuthority(java.lang.String authority)Determines if theSecurityExpressionOperations.getAuthentication()has a particular authority withinAuthentication.getAuthorities().booleanhasPermission(java.lang.Object target, java.lang.Object permission)Determines if theSecurityExpressionOperations.getAuthentication()has permission to access the target given the permissionbooleanhasPermission(java.lang.Object targetId, java.lang.String targetType, java.lang.Object permission)Determines if theSecurityExpressionOperations.getAuthentication()has permission to access the domain object with a given id, type, and permission.booleanhasRole(java.lang.String role)Determines if theSecurityExpressionOperations.getAuthentication()has a particular authority withinAuthentication.getAuthorities().booleanisAnonymous()Determines if theSecurityExpressionOperations.getAuthentication()is anonymousbooleanisAuthenticated()Determines iftheSecurityExpressionOperations.getAuthentication()is authenticatedbooleanisFullyAuthenticated()Determines if theSecurityExpressionOperations.getAuthentication()authenticated without the use of remember mebooleanisRememberMe()Determines if theSecurityExpressionOperations.getAuthentication()was authenticated using remember mebooleanpermitAll()Always grants access.voidsetDefaultRolePrefix(java.lang.String defaultRolePrefix)Sets the default prefix to be added tohasAnyRole(String...)orhasRole(String).voidsetPermissionEvaluator(PermissionEvaluator permissionEvaluator)voidsetRoleHierarchy(RoleHierarchy roleHierarchy)voidsetTrustResolver(AuthenticationTrustResolver trustResolver) 
 - 
 
- 
- 
Field Detail
- 
authentication
protected final Authentication authentication
 
- 
permitAll
public final boolean permitAll
Allows "permitAll" expression- See Also:
 - Constant Field Values
 
 
- 
denyAll
public final boolean denyAll
Allows "denyAll" expression- See Also:
 - Constant Field Values
 
 
- 
read
public final java.lang.String read
- See Also:
 - Constant Field Values
 
 
- 
write
public final java.lang.String write
- See Also:
 - Constant Field Values
 
 
- 
create
public final java.lang.String create
- See Also:
 - Constant Field Values
 
 
- 
delete
public final java.lang.String delete
- See Also:
 - Constant Field Values
 
 
- 
admin
public final java.lang.String admin
- See Also:
 - Constant Field Values
 
 
 - 
 
- 
Constructor Detail
- 
SecurityExpressionRoot
public SecurityExpressionRoot(Authentication authentication)
Creates a new instance- Parameters:
 authentication- theAuthenticationto use. Cannot be null.
 
 - 
 
- 
Method Detail
- 
hasAuthority
public final boolean hasAuthority(java.lang.String authority)
Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()has a particular authority withinAuthentication.getAuthorities().- Specified by:
 hasAuthorityin interfaceSecurityExpressionOperations- Parameters:
 authority- the authority to test (i.e. "ROLE_USER")- Returns:
 - true if the authority is found, else false
 
 
- 
hasAnyAuthority
public final boolean hasAnyAuthority(java.lang.String... authorities)
Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()has any of the specified authorities withinAuthentication.getAuthorities().- Specified by:
 hasAnyAuthorityin interfaceSecurityExpressionOperations- Parameters:
 authorities- the authorities to test (i.e. "ROLE_USER", "ROLE_ADMIN")- Returns:
 - true if any of the authorities is found, else false
 
 
- 
hasRole
public final boolean hasRole(java.lang.String role)
Description copied from interface:SecurityExpressionOperationsDetermines if the
SecurityExpressionOperations.getAuthentication()has a particular authority withinAuthentication.getAuthorities().This is similar to
SecurityExpressionOperations.hasAuthority(String)except that this method implies that the String passed in is a role. For example, if "USER" is passed in the implementation may convert it to use "ROLE_USER" instead. The way in which the role is converted may depend on the implementation settings.- Specified by:
 hasRolein interfaceSecurityExpressionOperations- Parameters:
 role- the authority to test (i.e. "USER")- Returns:
 - true if the authority is found, else false
 
 
- 
hasAnyRole
public final boolean hasAnyRole(java.lang.String... roles)
Description copied from interface:SecurityExpressionOperationsDetermines if the
SecurityExpressionOperations.getAuthentication()has any of the specified authorities withinAuthentication.getAuthorities().This is a similar to hasAnyAuthority except that this method implies that the String passed in is a role. For example, if "USER" is passed in the implementation may convert it to use "ROLE_USER" instead. The way in which the role is converted may depend on the implementation settings.
- Specified by:
 hasAnyRolein interfaceSecurityExpressionOperations- Parameters:
 roles- the authorities to test (i.e. "USER", "ADMIN")- Returns:
 - true if any of the authorities is found, else false
 
 
- 
getAuthentication
public final Authentication getAuthentication()
Description copied from interface:SecurityExpressionOperationsGets theAuthenticationused for evaluating the expressions- Specified by:
 getAuthenticationin interfaceSecurityExpressionOperations- Returns:
 - the 
Authenticationfor evaluating the expressions 
 
- 
permitAll
public final boolean permitAll()
Description copied from interface:SecurityExpressionOperationsAlways grants access.- Specified by:
 permitAllin interfaceSecurityExpressionOperations- Returns:
 - true
 
 
- 
denyAll
public final boolean denyAll()
Description copied from interface:SecurityExpressionOperationsAlways denies access- Specified by:
 denyAllin interfaceSecurityExpressionOperations- Returns:
 - false
 
 
- 
isAnonymous
public final boolean isAnonymous()
Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()is anonymous- Specified by:
 isAnonymousin interfaceSecurityExpressionOperations- Returns:
 - true if the user is anonymous, else false
 
 
- 
isAuthenticated
public final boolean isAuthenticated()
Description copied from interface:SecurityExpressionOperationsDetermines iftheSecurityExpressionOperations.getAuthentication()is authenticated- Specified by:
 isAuthenticatedin interfaceSecurityExpressionOperations- Returns:
 - true if the 
SecurityExpressionOperations.getAuthentication()is authenticated, else false 
 
- 
isRememberMe
public final boolean isRememberMe()
Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()was authenticated using remember me- Specified by:
 isRememberMein interfaceSecurityExpressionOperations- Returns:
 - true if the 
SecurityExpressionOperations.getAuthentication()authenticated using remember me, else false 
 
- 
isFullyAuthenticated
public final boolean isFullyAuthenticated()
Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()authenticated without the use of remember me- Specified by:
 isFullyAuthenticatedin interfaceSecurityExpressionOperations- Returns:
 - true if the 
SecurityExpressionOperations.getAuthentication()authenticated without the use of remember me, else false 
 
- 
getPrincipal
public java.lang.Object getPrincipal()
Convenience method to accessAuthentication.getPrincipal()fromgetAuthentication()- Returns:
 
 
- 
setTrustResolver
public void setTrustResolver(AuthenticationTrustResolver trustResolver)
 
- 
setRoleHierarchy
public void setRoleHierarchy(RoleHierarchy roleHierarchy)
 
- 
setDefaultRolePrefix
public void setDefaultRolePrefix(java.lang.String defaultRolePrefix)
Sets the default prefix to be added to
hasAnyRole(String...)orhasRole(String). For example, if hasRole("ADMIN") or hasRole("ROLE_ADMIN") is passed in, then the role ROLE_ADMIN will be used when the defaultRolePrefix is "ROLE_" (default).If null or empty, then no default role prefix is used.
- Parameters:
 defaultRolePrefix- the default prefix to add to roles. Default "ROLE_".
 
- 
hasPermission
public boolean hasPermission(java.lang.Object target, java.lang.Object permission)Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()has permission to access the target given the permission- Specified by:
 hasPermissionin interfaceSecurityExpressionOperations- Parameters:
 target- the target domain object to check permission onpermission- the permission to check on the domain object (i.e. "read", "write", etc).- Returns:
 - true if permission is granted to the 
SecurityExpressionOperations.getAuthentication(), else false 
 
- 
hasPermission
public boolean hasPermission(java.lang.Object targetId, java.lang.String targetType, java.lang.Object permission)Description copied from interface:SecurityExpressionOperationsDetermines if theSecurityExpressionOperations.getAuthentication()has permission to access the domain object with a given id, type, and permission.- Specified by:
 hasPermissionin interfaceSecurityExpressionOperations- Parameters:
 targetId- the identifier of the domain object to determine accesstargetType- the type (i.e. com.example.domain.Message)permission- the perission to check on the domain object (i.e. "read", "write", etc)- Returns:
 - true if permission is granted to the 
SecurityExpressionOperations.getAuthentication(), else false 
 
- 
setPermissionEvaluator
public void setPermissionEvaluator(PermissionEvaluator permissionEvaluator)
 
 - 
 
 -