Class DefaultMethodSecurityExpressionHandler
java.lang.Object
org.springframework.security.access.expression.AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler
- All Implemented Interfaces:
org.springframework.aop.framework.AopInfrastructureBean,org.springframework.beans.factory.Aware,org.springframework.context.ApplicationContextAware,MethodSecurityExpressionHandler,SecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
public class DefaultMethodSecurityExpressionHandler
extends AbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>
implements MethodSecurityExpressionHandler
The standard implementation of
MethodSecurityExpressionHandler.
A single instance should usually be shared amongst the beans that require expression support.
- Since:
- 3.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.springframework.expression.EvaluationContextcreateEvaluationContext(Supplier<? extends @Nullable Authentication> authentication, org.aopalliance.intercept.MethodInvocation mi) Provides an evaluation context in which to evaluate security expressions for the invocation type.org.springframework.expression.spel.support.StandardEvaluationContextcreateEvaluationContextInternal(@Nullable Authentication auth, org.aopalliance.intercept.MethodInvocation mi) Uses aMethodSecurityEvaluationContextas the EvaluationContext implementation.protected MethodSecurityExpressionOperationscreateSecurityExpressionRoot(@Nullable Authentication authentication, org.aopalliance.intercept.MethodInvocation invocation) Creates the root object for expression evaluation.filter(@Nullable Object filterTarget, org.springframework.expression.Expression filterExpression, org.springframework.expression.EvaluationContext ctx) Filters thefilterTargetobject (which must be either aCollection,Array,MaporStream), by evaluating the supplied expression.protected StringDeprecated.protected org.springframework.core.ParameterNameDiscovererprotected AuthenticationTrustResolverDeprecated.voidsetDefaultRolePrefix(@Nullable String defaultRolePrefix) Deprecated.voidsetParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer) Sets theParameterNameDiscovererto use.voidsetPermissionCacheOptimizer(PermissionCacheOptimizer permissionCacheOptimizer) voidsetReturnObject(@Nullable Object returnObject, org.springframework.expression.EvaluationContext ctx) Used to inform the expression system of the return object for the given evaluation context.voidsetTrustResolver(AuthenticationTrustResolver trustResolver) Deprecated.Methods inherited from class org.springframework.security.access.expression.AbstractSecurityExpressionHandler
createEvaluationContext, getAuthorizationManagerFactory, getBeanResolver, getDefaultAuthorizationManagerFactory, getExpressionParser, getPermissionEvaluator, getRoleHierarchy, setApplicationContext, setAuthorizationManagerFactory, setExpressionParser, setPermissionEvaluator, setRoleHierarchyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.security.access.expression.SecurityExpressionHandler
createEvaluationContext, getExpressionParser
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
DefaultMethodSecurityExpressionHandler
public DefaultMethodSecurityExpressionHandler()
-
-
Method Details
-
createEvaluationContextInternal
public org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContextInternal(@Nullable Authentication auth, org.aopalliance.intercept.MethodInvocation mi) Uses aMethodSecurityEvaluationContextas the EvaluationContext implementation.- Overrides:
createEvaluationContextInternalin classAbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>- Parameters:
auth- the current authentication objectmi- the invocation (filter, method, channel)- Returns:
- A
StandardEvaluationContextor potentially a custom subclass if overridden.
-
createEvaluationContext
public org.springframework.expression.EvaluationContext createEvaluationContext(Supplier<? extends @Nullable Authentication> authentication, org.aopalliance.intercept.MethodInvocation mi) Description copied from interface:SecurityExpressionHandlerProvides an evaluation context in which to evaluate security expressions for the invocation type. You can override this method in order to provide a custom implementation that uses lazy initialization of theAuthenticationobject. By default, this method uses eager initialization of theAuthenticationobject.- Specified by:
createEvaluationContextin interfaceSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>- Parameters:
authentication- theSupplierof theAuthenticationto usemi- theSecurityExpressionHandlerto use- Returns:
- the
EvaluationContextto use
-
createSecurityExpressionRoot
protected MethodSecurityExpressionOperations createSecurityExpressionRoot(@Nullable Authentication authentication, org.aopalliance.intercept.MethodInvocation invocation) Creates the root object for expression evaluation.- Specified by:
createSecurityExpressionRootin classAbstractSecurityExpressionHandler<org.aopalliance.intercept.MethodInvocation>- Parameters:
authentication- the current authentication objectinvocation- the invocation (filter, method, channel)- Returns:
- the object
-
filter
public Object filter(@Nullable Object filterTarget, org.springframework.expression.Expression filterExpression, org.springframework.expression.EvaluationContext ctx) Filters thefilterTargetobject (which must be either aCollection,Array,MaporStream), by evaluating the supplied expression.Returns new instances of the same type as the supplied
filterTargetobject- Specified by:
filterin interfaceMethodSecurityExpressionHandler- Parameters:
filterTarget- the array or collection to be filtered.filterExpression- the expression which should be used as the filter condition. If it returns false on evaluation, the object will be removed from the returned collectionctx- the current evaluation context (as created through a call toSecurityExpressionHandler.createEvaluationContext(org.springframework.security.core.Authentication, Object)- Returns:
- The filtered
Collection,Array,MaporStream
-
setTrustResolver
Deprecated.Sets theAuthenticationTrustResolverto be used. The default isAuthenticationTrustResolverImpl.- Parameters:
trustResolver- theAuthenticationTrustResolverto use. Cannot be null.
-
getTrustResolver
Deprecated.- Returns:
- The current
AuthenticationTrustResolver
-
setParameterNameDiscoverer
public void setParameterNameDiscoverer(org.springframework.core.ParameterNameDiscoverer parameterNameDiscoverer) Sets theParameterNameDiscovererto use. The default isDefaultSecurityParameterNameDiscoverer.- Parameters:
parameterNameDiscoverer-
-
getParameterNameDiscoverer
protected org.springframework.core.ParameterNameDiscoverer getParameterNameDiscoverer()- Returns:
- The current
ParameterNameDiscoverer
-
setPermissionCacheOptimizer
-
setReturnObject
public void setReturnObject(@Nullable Object returnObject, org.springframework.expression.EvaluationContext ctx) Description copied from interface:MethodSecurityExpressionHandlerUsed to inform the expression system of the return object for the given evaluation context. Only applies to method invocations.- Specified by:
setReturnObjectin interfaceMethodSecurityExpressionHandler- Parameters:
returnObject- the return object valuectx- the context within which the object should be set (as created through a call toSecurityExpressionHandler.createEvaluationContext(org.springframework.security.core.Authentication, Object)
-
setDefaultRolePrefix
Deprecated.Sets the default prefix to be added to
SecurityExpressionRoot.hasAnyRole(String...)orSecurityExpressionRoot.hasRole(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_".
-
getDefaultRolePrefix
Deprecated.- Returns:
- The default role prefix
-
AbstractSecurityExpressionHandler.setAuthorizationManagerFactory(AuthorizationManagerFactory)instead