Class MapBasedMethodSecurityMetadataSource
java.lang.Object
org.springframework.security.access.method.AbstractMethodSecurityMetadataSource
org.springframework.security.access.method.AbstractFallbackMethodSecurityMetadataSource
org.springframework.security.access.method.MapBasedMethodSecurityMetadataSource
- All Implemented Interfaces:
org.springframework.aop.framework.AopInfrastructureBean
,org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanClassLoaderAware
,MethodSecurityMetadataSource
,SecurityMetadataSource
public class MapBasedMethodSecurityMetadataSource
extends AbstractFallbackMethodSecurityMetadataSource
implements org.springframework.beans.factory.BeanClassLoaderAware
Stores a list of ConfigAttributes for a method or class signature.
This class is the preferred implementation of MethodSecurityMetadataSource
for
XML-based definition of method security metadata. To assist in XML-based definition,
wildcard support is provided.
- Since:
- 2.0
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Map<org.springframework.security.access.method.MapBasedMethodSecurityMetadataSource.RegisteredMethod,
List<ConfigAttribute>> Map from RegisteredMethod to ConfigAttribute listFields inherited from class org.springframework.security.access.method.AbstractMethodSecurityMetadataSource
logger
-
Constructor Summary
ConstructorDescriptionMapBasedMethodSecurityMetadataSource
(Map<String, List<ConfigAttribute>> methodMap) Creates the MapBasedMethodSecurityMetadataSource from a -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSecureMethod
(Class<?> javaType, Method method, List<ConfigAttribute> attr) Adds configuration attributes for a specific method, for example where the method has been matched using a pointcut expression.void
addSecureMethod
(Class<?> javaType, String mappedName, List<ConfigAttribute> attr) Add configuration attributes for a secure method.protected Collection<ConfigAttribute>
findAttributes
(Class<?> clazz) Implementation does not support class-level attributes.protected Collection<ConfigAttribute>
findAttributes
(Method method, Class<?> targetClass) Will walk the method inheritance tree to find the most specific declaration applicable.Obtains the configuration attributes explicitly defined against this bean.int
void
setBeanClassLoader
(ClassLoader beanClassLoader) Methods inherited from class org.springframework.security.access.method.AbstractFallbackMethodSecurityMetadataSource
getAttributes
Methods inherited from class org.springframework.security.access.method.AbstractMethodSecurityMetadataSource
getAttributes, supports
-
Field Details
-
methodMap
protected final Map<org.springframework.security.access.method.MapBasedMethodSecurityMetadataSource.RegisteredMethod,List<ConfigAttribute>> methodMapMap from RegisteredMethod to ConfigAttribute list
-
-
Constructor Details
-
MapBasedMethodSecurityMetadataSource
public MapBasedMethodSecurityMetadataSource() -
MapBasedMethodSecurityMetadataSource
Creates the MapBasedMethodSecurityMetadataSource from a- Parameters:
methodMap
- map of method names to ConfigAttributes.
-
-
Method Details
-
findAttributes
Implementation does not support class-level attributes.- Specified by:
findAttributes
in classAbstractFallbackMethodSecurityMetadataSource
- Parameters:
clazz
- the target class for the invocation (nevernull
)- Returns:
- the security metadata (or null if no metadata applies)
-
findAttributes
Will walk the method inheritance tree to find the most specific declaration applicable.- Specified by:
findAttributes
in classAbstractFallbackMethodSecurityMetadataSource
- Parameters:
method
- the method for the current invocation (nevernull
)targetClass
- the target class for the invocation (may benull
)- Returns:
- the security metadata (or null if no metadata applies)
-
addSecureMethod
Add configuration attributes for a secure method. Mapped method names can end or start with*
for matching multiple methods.- Parameters:
javaType
- target interface or class the security configuration attribute applies tomappedName
- mapped method name, which the javaType has declared or inheritedattr
- required authorities associated with the method
-
addSecureMethod
Adds configuration attributes for a specific method, for example where the method has been matched using a pointcut expression. If a match already exists in the map for the method, then the existing match will be retained, so that if this method is called for a more general pointcut it will not override a more specific one which has already been added.This method should only be called during initialization of the
BeanFactory
. -
getAllConfigAttributes
Obtains the configuration attributes explicitly defined against this bean.- Specified by:
getAllConfigAttributes
in interfaceSecurityMetadataSource
- Returns:
- the attributes explicitly defined against this bean
-
setBeanClassLoader
- Specified by:
setBeanClassLoader
in interfaceorg.springframework.beans.factory.BeanClassLoaderAware
-
getMethodMapSize
public int getMethodMapSize()- Returns:
- map size (for unit tests and diagnostics)
-