第 21 章 信道安全

21.1. 设置信道安全

为了加强安全级别,我们可以限制默写资源必须通过https协议才能访问。

<http auto-config='true'>
    <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" requires-channel="https"/>
    <intercept-url pattern="/**" access="ROLE_USER" />
</http>
        

可以为/admin.jsp单独设置必须使用https才能访问,如果用户使用了http协议访问该网址,系统会强制用户使用https 协议重新进行请求。

这里我们可以选使用https, http或者any三种数值,其中any为默认值,表示无论用户使用何种协议都可以访问资源。

21.2. 指定http和https的端口

因为http和https协议的访问端口不同,Spring Security在处理信道安全时默认会使用80/443和8080/8443对访问的网址进行转换。如果服务器对http和https协议监听的端口进行了修改,则需要修改配置文件让系统了解http和https的端口信息。

我们可以使用port-mappings自定义端口映射。

<http auto-config='true'>
    <intercept-url pattern="/admin.jsp" access="ROLE_ADMIN" requires-channel="https"/>
    <intercept-url pattern="/**" access="ROLE_USER" />
    <port-mappings>
        <port-mapping http="9000" https="9443"/>
    </port-mappings>
</http>
        

上述配置文件中,我们定义了9000与9443的映射,现在系统会在强制使用http协议的网址时使用9000作为端口号,在强制使用https协议的网址时使用9443作为端口号,这些端口号会反映在重定向后生成网址中。

实例在ch111。