2

我想强制我的 webapp 下的某些 URL 只能通过 HTTPS 访问,而其余的只能通过 HTTP 访问。我使用以下配置通过 Spring Security 3.1.1 实现了这一点:

<security:intercept-url pattern="/cart" requires-channel="https" />
<security:intercept-url pattern="/login" requires-channel="https" />

使用此配置,当我尝试在 HTTP 下打开“/login”时,我会自动重定向到 HTTPS 下的“/login”,这完全符合要求。问题是状态码 - 使用 302 执行重定向(临时移动)。是否可以将该状态代码更改为 301(永久移动)?

4

1 回答 1

0

相同的问题已在此处进行了更详细的描述并得到了解答:Override the ChannelProcessingFilter with Spring Security 3.0.5 does not work

编辑:另一种方法是保留默认的 retryWithHttpEntryPoint 和 retryWithHttpsEntryPoint bean,仅提供自定义 RedirectStrategy 实现。

于 2013-10-17T13:30:54.767 回答