Java Spring Security 3.1和不安全的HTTP通道

Java Spring Security 3.1和不安全的HTTP通道,java,spring,spring-security,Java,Spring,Spring Security,我们最近刚从SpringSecurity 3.0版升级到3.1版。我们的旧配置文件显然使用了一个不推荐使用的功能,您可以使用'filter=“none”'选项禁用块内块的安全性。以下是旧applicationContext-security.xml文件中的一个片段: <http ...> <intercept-url pattern="/resetPassword" filter="none" requires-channel="https" /> </ht

我们最近刚从SpringSecurity 3.0版升级到3.1版。我们的旧配置文件显然使用了一个不推荐使用的功能,您可以使用'filter=“none”'选项禁用块内块的安全性。以下是旧applicationContext-security.xml文件中的一个片段:

<http ...>
    <intercept-url pattern="/resetPassword" filter="none" requires-channel="https" />
</http>

Spring Security 3.1强制您定义其他块以关闭某些URL模式的安全性:

<http security="none" pattern="/resetPassword" />


问:如何强制此新块使用HTTPS通道?

您使用的配置实际上并不需要HTTPS,因为filters=“none”意味着Spring Security不应该关注该请求。相反,对于Spring Security 3和3.1,您应该使用如下内容:

  <http use-expressions="true" ...>
    <intercept-url pattern="/resetPassword" access="permitAll" requires-channel="https" />
  </http>

谢谢!还有其他一些小的调整——即使用hasAnyAuthority(…角色…)而不是直接命名角色——这非常有效。