Java 如何跳过控制器特定方法的spring身份验证
如何在SpringMVC中跳过特定方法的身份验证。我的Java 如何跳过控制器特定方法的spring身份验证,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,如何在SpringMVC中跳过特定方法的身份验证。我的spring\u security.xml文件包含: <http auto-config="true" use-expressions="true"> <intercept-url pattern="/logout" access="permitAll"/> <intercept-url pattern="/login" access="permitAll"/> <
spring\u security.xml
文件包含:
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/logout" access="permitAll"/>
<intercept-url pattern="/login" access="permitAll"/>
<intercept-url pattern="/**" access="hasRole('ROLE_USER')"/>
<logout logout-success-url="/logoutPage" logout-url="/logout" />
<form-login authentication-failure-url="/login?auth=fail"
login-page="/login"
login-processing-url="/loginPage"
password-parameter="password"
username-parameter="username"
/>
</http>
<global-method-security secured-annotations="enabled" pre-post-annotations="enabled" />
我用的东西不管用。谢谢。你不能<代码>截取url在控制器注释之前进行评估 但是,您可以通过在xml中添加以下内容来解决此问题:
@PreAuthorize(“permitAll”)
没有任何意义,因为它基本上是禁止操作的。spring security中有两个级别的安全性:
- 由
元素管理的基于URL的安全性拦截URL
- 基于方法的安全性主要通过
注释进行管理预授权
您可以将两者混合使用,方法安全性可以用于非常精细的规则,特别是ACL,并且可以应用于服务或模型方法,但不能用于覆盖基于URL的限制。尝试使用类似的方法
<http pattern="/data/info**" security="none"/>
但是他们的注释不是可以用来代替xml定义的吗?因为我有很多方法需要
permitAll
你可以用注释代替xml,但是你不能用注释覆盖xml中定义的规则。
<http pattern="/data/info**" security="none"/>