我在Sping Boot 2.1上工作。
我希望允许所有默认端点
- 要么是经过正确鉴定
- 如果它们传递了我实现并命名为 * hashSerialSecurityVoter* 的specific authentication规则,则也是如此。
我的代码:
SecurityConfig.java
protected void configure(HttpSecurity http) throws Exception {
http.csrf()
.disable().cors().and().exceptionHandling()
/* [...] */
.anyRequest()
.authenticated();
.accessDecisionManager(playerResourceDecisionManager());
}
个字符
它有效地通过两个选民。
但是在AuthenticatedVoter中,它并不像我预期的那样运行。
即使我通过了身份验证,它也会返回 ACCESS_ABSTAIN 值。
当我调试它时,我注意到Manager没有提供任何ConfigAttribute。
所以authenticatedVoter.supports()
方法返回false..
我是否错过了accessDecisionManager声明中的某些内容?
结果是我的主API客户端不再工作,因为我所有的请求都返回403。
1条答案
按热度按时间woobm2wo1#
在AccessDecisionManger中添加
WebExpressionVoter
。.authenticated()
、.fullyAuthenticated()
、.anonymous()
都创建WebExpressionConfigAttribute对象。AuthenticatedVoter
(IS_AUTHENTICATED_FULLY属性)在Spring XML安全配置中使用。Spring Security:v5.7.8