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)); }