Class 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).

    • Constructor Detail

      • ChannelDecisionManagerImpl

        public ChannelDecisionManagerImpl()
    • Method Detail

      • afterPropertiesSet

        public void afterPropertiesSet()
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
      • 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<?> channelProcessors)
      • 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