Example usage for org.springframework.security.web.access.channel ChannelDecisionManagerImpl setChannelProcessors

List of usage examples for org.springframework.security.web.access.channel ChannelDecisionManagerImpl setChannelProcessors

Introduction

In this page you can find the example usage for org.springframework.security.web.access.channel ChannelDecisionManagerImpl setChannelProcessors.

Prototype

@SuppressWarnings("cast")
    public void setChannelProcessors(List<?> newList) 

Source Link

Usage

From source file:org.broadleafcommerce.common.security.channel.ProtoChannelBeanPostProcessor.java

@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
    if (bean instanceof ChannelDecisionManagerImpl) {
        try {// www . ja va 2 s. c  o  m
            ChannelDecisionManagerImpl manager = (ChannelDecisionManagerImpl) bean;
            Field channelProcessors = manager.getClass().getDeclaredField("channelProcessors");
            channelProcessors.setAccessible(true);
            List<ChannelProcessor> list = (List<ChannelProcessor>) channelProcessors.get(manager);
            list.clear();
            manager.setChannelProcessors(channelProcessorOverrides);
            LOG.info(
                    "Replacing the standard Spring Security channel processors with custom processors that look for a "
                            + "'X-Forwarded-Proto' request header. This allows Spring Security to sit behind a load balancer with SSL termination.");
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    return bean;
}