我将以下 Java 配置与 Spring Security 结合使用:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
基于此配置,所有请求都经过身份验证。当您在未经身份验证的情况下点击控制器时,AnonymousAuthenticationFilter
将为您创建一个身份验证对象username=anonymousUser, role=ROLE_ANONYMOUS
.
我试图提供对特定控制器方法的匿名访问,并尝试使用以下各项:
@Secured("ROLE_ANONYMOUS")
@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
当调用控制器方法时,会给出以下响应:
“HTTP 状态 401 - 需要完全身份验证才能访问此资源”
有人可以帮助我理解为什么我们会收到此消息以及原因ROLE_ANONYMOUS
/IS_AUTHENTICATED_ANONYMOUSLY
使用此配置似乎不起作用?
Thanks,
JP
您的安全配置正在阻止所有未经身份验证的请求。
您应该允许访问控制器
.antMatchers("/mycontroller").permitAll()
也可以看看:
- http://spring.io/blog/2013/07/03/spring-security-java-config-preview-web-security/ http://spring.io/blog/2013/07/03/spring-security-java-config-preview-web-security/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)