使用Spring Security配置HTTP页面和HTTPS页面

时间:2015-02-10 17:40:53

标签: spring ssl spring-security

我已使用Spring Security成功设置了应用程序。当用户请求安全页面时,Spring会自动将这些用户重定向到HTTPS页面。

<http auto-config="true" use-expressions="true" once-per-request="true" >
    <intercept-url pattern="/login" access="permitAll" requires-channel="https"/>
    <intercept-url pattern="/my-account" access="isAuthenticated()" requires-channel="https"/>

    <logout />
    <form-login login-page="/login" />
    <port-mappings>
        <port-mapping http="8080" https="8443"/>
        <port-mapping http="80" https="443"/>
    </port-mappings>
</http>

但是当用户导航时,其他没有敏感信息的其他页面仍在使用HTTPS。我希望只使用HTTP访问这些普通页面。

有任何聪明的方法吗?我没有配置为HTTPS通道的所有其他页面我只想使用HTTP访问。我尝试使用一些通配符但没有成功。

额外细节: HTTPS使用更多服务器CPU。我在某些页面上有很多请求,我希望避免这些额外费用。

2 个答案:

答案 0 :(得分:1)

使您的整个网站成为HTTPS。这些天性能变化很小,您不会通过HTTP公开会话cookie来阻止用户。

https://istlsfastyet.com/

答案 1 :(得分:0)

在Spring-Security中,你可以这样做 -

<http auto-config="true" use-expressions="true" once-per-request="true" >
<intercept-url pattern="/login" access="permitAll" requires-channel="https"/>
<intercept-url pattern="/my-account" access="isAuthenticated()" requires-channel="https"/>
<intercept-url pattern="/**" access="permitAll" requires-channel="http"/>

除了“/ login”和“/ my-account”之外的所有其他网址都将通过http提供。

除此之外,您必须设置cookie的安全标志。 通过设置安全标志,浏览器将阻止cookie通过未加密的通道传输。 https://www.owasp.org/index.php/SecureFlag