我已使用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。我在某些页面上有很多请求,我希望避免这些额外费用。
答案 0 :(得分:1)
使您的整个网站成为HTTPS。这些天性能变化很小,您不会通过HTTP公开会话cookie来阻止用户。
答案 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