org.springframework.security.web.access.channel
Class ChannelDecisionManagerImpl

java.lang.Object
  extended by org.springframework.security.web.access.channel.ChannelDecisionManagerImpl
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, ChannelDecisionManager

public class ChannelDecisionManagerImpl
extends java.lang.Object
implements ChannelDecisionManager, org.springframework.beans.factory.InitializingBean

Implementation of ChannelDecisionManager.

Iterates through each configured ChannelProcessor. If a ChannelProcessor has any issue with the security of the request, it should cause a redirect, exception or whatever other action is appropriate for the ChannelProcessor implementation.

Once any response is committed (ie a redirect is written to the response object), the ChannelDecisionManagerImpl will not iterate through any further ChannelProcessors.

The attribute "ANY_CHANNEL" if applied to a particular URL, the iteration through the channel processors will be skipped (see SEC-494, SEC-335).


Field Summary
static java.lang.String ANY_CHANNEL
           
 
Constructor Summary
ChannelDecisionManagerImpl()
           
 
Method Summary
 void afterPropertiesSet()
           
 void decide(FilterInvocation invocation, java.util.Collection<ConfigAttribute> config)
          Decided whether the presented FilterInvocation provides the appropriate level of channel security based on the requested list of ConfigAttributes.
protected  java.util.List<ChannelProcessor> getChannelProcessors()
           
 void setChannelProcessors(java.util.List<?> newList)
           
 boolean supports(ConfigAttribute attribute)
          Indicates whether this ChannelDecisionManager is able to process the passed ConfigAttribute.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ANY_CHANNEL

public static final java.lang.String ANY_CHANNEL
See Also:
Constant Field Values
Constructor Detail

ChannelDecisionManagerImpl

public ChannelDecisionManagerImpl()
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
                        throws java.lang.Exception
Specified by:
afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
Throws:
java.lang.Exception

decide

public void decide(FilterInvocation invocation,
                   java.util.Collection<ConfigAttribute> config)
            throws java.io.IOException,
                   javax.servlet.ServletException
Description copied from interface: ChannelDecisionManager
Decided whether the presented FilterInvocation provides the appropriate level of channel security based on the requested list of ConfigAttributes.

Specified by:
decide in interface ChannelDecisionManager
Throws:
java.io.IOException
javax.servlet.ServletException

getChannelProcessors

protected java.util.List<ChannelProcessor> getChannelProcessors()

setChannelProcessors

public void setChannelProcessors(java.util.List<?> newList)

supports

public boolean supports(ConfigAttribute attribute)
Description copied from interface: ChannelDecisionManager
Indicates whether this ChannelDecisionManager is able to process the passed ConfigAttribute.

This allows the ChannelProcessingFilter to check every configuration attribute can be consumed by the configured ChannelDecisionManager.

Specified by:
supports in interface ChannelDecisionManager
Parameters:
attribute - a configuration attribute that has been configured against the ChannelProcessingFilter
Returns:
true if this ChannelDecisionManager can support the passed configuration attribute