弹簧安全 - 允许匿名访问

我已经在我的spring-boot应用程序中实现了Oauth2。在我的安全环境中.xml,我有这些线 -

<sec:intercept-url pattern="/trusted/**" access="isAnonymous()" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />

我希望 /trusted 下的所有内容在没有身份验证的情况下都可用。但是,当我尝试访问/受信任的资源(这些是RESTful资源)时,仍然提示我进行身份验证。

我错过了别的东西吗?

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


答案 1

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

<sec:intercept-url pattern="/trusted/**" filters="none" />
<sec:intercept-url pattern="/**" access="isFullyAuthenticated()" />

虽然由于Spring Security 3.1已经弃用,但你应该使用标签来达到同样的效果:filtershttp

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

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

您可以在此处阅读有关此内容的更多信息


答案 2
<http>
<intercept-url pattern="/trusted/**" access="ROLE_USER,ROLE_GUEST" />
<intercept-url pattern="/messagePost.htm*" access="ROLE_USER" />
<intercept-url pattern="/messageDelete.htm*" access="ROLE_ADMIN" />
<anonymous username="guest" granted-authority="ROLE_GUEST" />
<remember-me />
</http>

<anonymous username="guest" granted-authority="ROLE_GUEST" />

您可以定义一个角色,例如ROLE_GUEST并提及上述代码的作用。任何匿名成员都可以在ROLE_GUEST下访问 url 模式


推荐