使用Java Config混淆Spring Security匿名访问
我在Spring Security中使用以下Java Config:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
基于此配置,所有请求都经过身份验证。 当您未经身份验证而击中控制器时, AnonymousAuthenticationFilter
将使用username=anonymousUser, role=ROLE_ANONYMOUS
为您创建一个Authentication对象。
我试图提供一个特定的控制器方法的匿名访问,并试图使用以下每一个:
@Secured("ROLE_ANONYMOUS")
@Secured("IS_AUTHENTICATED_ANONYMOUSLY")
当调用控制器方法时,会给出以下响应:“HTTP状态401 - 访问此资源需要完全身份验证”
有人可以帮助我理解我们为什么会收到此消息,以及为什么ROLE_ANONYMOUS
/ IS_AUTHENTICATED_ANONYMOUSLY
似乎无法使用此配置?
谢谢,
J.P
您的安全配置会阻止所有未经身份验证的请求。 您应该允许访问控制器
.antMatchers("/mycontroller").permitAll()
也可以看看:
上一篇: Confusion around Spring Security anonymous access using Java Config
下一篇: Get exact html() with closing tag for which starting tag is missing