Class DefaultFilterInvocationSecurityMetadataSource
- java.lang.Object
-
- org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource
-
- All Implemented Interfaces:
org.springframework.aop.framework.AopInfrastructureBean,SecurityMetadataSource,FilterInvocationSecurityMetadataSource
- Direct Known Subclasses:
ExpressionBasedFilterInvocationSecurityMetadataSource
public class DefaultFilterInvocationSecurityMetadataSource extends java.lang.Object implements FilterInvocationSecurityMetadataSource
Default implementation of FilterInvocationDefinitionSource.Stores an ordered map of
RequestMatchers to ConfigAttribute collections and provides matching ofFilterInvocations against the items stored in the map.The order of the
RequestMatchers in the map is very important. The first one which matches the request will be used. Later matchers in the map will not be invoked if a match has already been found. Accordingly, the most specific matchers should be registered first, with the most general matches registered last.The most common method creating an instance is using the Spring Security namespace. For example, the
patternandaccessattributes of the<intercept-url>elements defined as children of the<http>element are combined to build the instance used by theFilterSecurityInterceptor.
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.logging.Loglogger
-
Constructor Summary
Constructors Constructor Description DefaultFilterInvocationSecurityMetadataSource(java.util.LinkedHashMap<RequestMatcher,java.util.Collection<ConfigAttribute>> requestMap)Sets the internal request map from the supplied map.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Collection<ConfigAttribute>getAllConfigAttributes()If available, returns all of theConfigAttributes defined by the implementing class.java.util.Collection<ConfigAttribute>getAttributes(java.lang.Object object)Accesses theConfigAttributes that apply to a given secure object.booleansupports(java.lang.Class<?> clazz)Indicates whether theSecurityMetadataSourceimplementation is able to provideConfigAttributes for the indicated secure object type.
-
-
-
Constructor Detail
-
DefaultFilterInvocationSecurityMetadataSource
public DefaultFilterInvocationSecurityMetadataSource(java.util.LinkedHashMap<RequestMatcher,java.util.Collection<ConfigAttribute>> requestMap)
Sets the internal request map from the supplied map. The key elements should be of typeRequestMatcher, which. The path stored in the key will depend on the type of the supplied UrlMatcher.- Parameters:
requestMap- order-preserving map of request definitions to attribute lists
-
-
Method Detail
-
getAllConfigAttributes
public java.util.Collection<ConfigAttribute> getAllConfigAttributes()
Description copied from interface:SecurityMetadataSourceIf available, returns all of theConfigAttributes defined by the implementing class.This is used by the
AbstractSecurityInterceptorto perform startup time validation of eachConfigAttributeconfigured against it.- Specified by:
getAllConfigAttributesin interfaceSecurityMetadataSource- Returns:
- the
ConfigAttributes ornullif unsupported
-
getAttributes
public java.util.Collection<ConfigAttribute> getAttributes(java.lang.Object object)
Description copied from interface:SecurityMetadataSourceAccesses theConfigAttributes that apply to a given secure object.- Specified by:
getAttributesin interfaceSecurityMetadataSource- Parameters:
object- the object being secured- Returns:
- the attributes that apply to the passed in secured object. Should return an empty collection if there are no applicable attributes.
-
supports
public boolean supports(java.lang.Class<?> clazz)
Description copied from interface:SecurityMetadataSourceIndicates whether theSecurityMetadataSourceimplementation is able to provideConfigAttributes for the indicated secure object type.- Specified by:
supportsin interfaceSecurityMetadataSource- Parameters:
clazz- the class that is being queried- Returns:
- true if the implementation can process the indicated class
-
-