我正在使用以下Java使用Spring Security进行配置:
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.httpBasic();
}
基于此配置,所有请求都经过身份验证。当您在未通过身份验证的情况下访问控制器时,匿名身份验证过滤器
将为您创建一个身份验证对象,用户名=匿名用户,角色=ROLE_ANONYMOUS。
我正在尝试提供对特定控制器方法的匿名访问,并尝试使用以下每种方法:
@安全("ROLE_ANONYMOUS")
@安全("IS_AUTHENTICATED_ANONYMOUSLY")
当调用控制器方法时,会给出以下响应:"HTTP状态401-访问此资源需要完全身份验证"
有人能帮我理解为什么我们会收到这个消息,为什么ROLE_ANONYMOUS
/IS_AUTHENTICATED_ANONYMOUSLY
似乎不能使用这个配置?
谢谢,
JP
您的安全配置阻止了所有未经身份验证的请求。您应该允许访问控制器
.antMatchers("/mycontroller").permitAll()
另见: