首页 > 代码库 > SpringSecurity-ChannelProcessingFilter的作用

SpringSecurity-ChannelProcessingFilter的作用

ChannelProcessingFilter决定的是web请求的通道,即http或https。

在springsecurity配置文件中添加这样一行

<intercept-url pattern=‘/**‘ requires-channel=‘https‘ />

ChannelProcessingFilter就会检查这个请求走的是否是https。如果是,就继续向下执行。否则,自动切换到对应的channel!

 

ChannelProcessingFilter有一个成员变量ChannelDecisionManager。

ChannelDecisionManager的decide方法即是判断channel是否正确。

ChannelDecisionManager的成员变量List<ChannelProcessor>默认有两个Processor:InsecureChannelProcessor和SecureChannelProcessor,

这两个Processor分别检查http和https的请求,如果请求的channel不正确,会自动切换(redirect)的对应的channel;

默认端口:http/80,https/443

public PortMapperImpl() {
        httpsPortMappings = new HashMap<Integer, Integer>();
        httpsPortMappings.put(Integer.valueOf(80), Integer.valueOf(443));
        httpsPortMappings.put(Integer.valueOf(8080), Integer.valueOf(8443));
    }

 

SpringSecurity-ChannelProcessingFilter的作用