【问题标题】:How to exclude controller from spring security?如何从弹簧安全中排除控制器?
【发布时间】:2012-09-09 14:45:06
【问题描述】:

我已经设置了运行良好的 spring 安全性,但是在我的一个控制器中,我不想将请求包装在 securityContextHolderAwareRequestWrapper...

如何将控制器从 Spring Security 中排除?

我已尝试添加以下内容:

<security:intercept-url pattern="/nonsecureMenu**" filters="none" />

但它仍然不起作用?

【问题讨论】:

  • 你的控制器的源代码是什么样子的?你使用什么版本的 Spring Security?
  • 我使用的是 spring 3,它都被注释了。我真正需要做的是访问来自 catalina 的请求对象,而不是来自 spring 之一的包装对象 - securityContextHolderAwareRequestWrapper。
  • 怎么样?
  • 您好,我不确定,因为我确实有一些需要身份验证的网址。但会调查并回发..
  • 我添加了父安全性:http 模式,但随后需要身份验证的资源停止工作..

标签: spring spring-mvc spring-security


【解决方案1】:

评论太长了,所以我在这里写下你应该怎么做。

正如@reagten 建议的那样,使用它(并在路径的开头添加/):

<http pattern="/nonsecureMenu**" security="none" />

声明 单独 &lt;http&gt; 元素仅用于此路径,即您将拥有多个 &lt;http&gt; 元素:

<http pattern="/resources/**" security="none" />
<http pattern="/nonsecureMenu**" security="none" />
<!-- plus for your actual config, for example: -->
<http auto-config='true'>
  <intercept-url pattern="/**" access="ROLE_USER" />
  <form-login login-page='/login'/>
</http>

【讨论】:

  • 太棒了,@reagten - 不知道你可以添加多个 http 元素。感谢双方。干杯:)
猜你喜欢
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2016-05-25
  • 2023-01-03
  • 2021-03-15
  • 2016-11-25
  • 1970-01-01
  • 2018-09-08
相关资源
最近更新 更多