2011-03-16 63 views
6

弹簧安全文档状态(2.3.2):春季安全:强制https使用注释?

如果你的应用程序同时支持HTTP 和HTTPS,你需要 特定的URL只能通过HTTPS访问 ,那么这是直接支持的 使用需要通道 属性上:

<http> 
    <intercept-url pattern="/secure/**" access="ROLE_USER" requires-channel="https"/> 
    <intercept-url pattern="/**" access="ROLE_USER" requires-channel="any"/> 
    ... 
    </http> 

但我用我的控制器的注解,而不是拦截的URL元素。

  • 我可以通过注释选择性地执行HTTPS吗?
  • 我可以强制HTTP用于非安全页面吗?

回答

3

从可用文档看来,使用只有注释可能无法强制执行渠道安全。

+1

它确实似乎是唯一的方法来做到这一点是通过拦截网址,这似乎破坏注释(我注释了所有我的控制器,并没有使用拦截网址到这一点,猜我必须回溯)。感谢您提供此确认,这是非常有帮助的。 – 2011-03-17 06:07:59

1

有很多的例子,说明如何通过强制HTTP的非安全使用注释使用Spring Security

http://www.jroller.com/habuma/entry/method_level_security_in_spring

spring not enforcing method security annotations

我不明白你的意思页面。如果它不安全,那么它已经是HTTP了。

+0

我没有在这些链接中找到任何关于如何强制用户使用** only注释来使用HTTPS的链接。关于HTTP,当从安全页面(例如帐户页面)转换回正常的非安全页面(作为保持HTTPS流量达到最低限度的一种方式)时,我考虑将用户降级为HTTP。 – 2011-03-17 06:06:02

+0

@David:将页面划分为安全且不安全的URL(最容易正确使用)是最容易的,如果你想在不安全的情况下从HTTPS降级到HTTP,请注意你可以使用'require-频道=“http”'做到这一点。 – 2011-03-18 15:24:27