Spring安全 - 允许匿名访问

NRJ*_*NRJ 17 java spring spring-security spring-boot spring-security-oauth2

我已经在我的spring-boot应用程序中实现了Oauth2.在我的security-context.xml中,我有这些行 -

<sec:intercept-url pattern="/trusted/**" access="isAnonymous()" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />
Run Code Online (Sandbox Code Playgroud)

我希望在没有身份验证的情 但是,当我尝试访问/可信资源时,我仍然会提示我进行身份验证(这些是RESTful资源).

我错过了别的什么吗?

[编辑:]我正在使用'提供的'tomcat实例运行此应用程序.

Dan*_*one 7

您只需要替换受信任的拦截表达式access属性,它应该工作:

<sec:intercept-url pattern="/trusted/**" filters="none" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />
Run Code Online (Sandbox Code Playgroud)

虽然自从Spring Security 3.1弃用之后filters,你应该使用http标签来达到同样的效果:

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

<http auto-config='true'>
  <intercept-url pattern="/**" access="isFullyAuthenticated()" />
  <form-login login-page='/login.jsp'/>
</http>
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多相关信息.