我目前在我的Spring Boot
应用程序中使用WebSecurityConfigurerAdapter
。在那里我已经配置了安全检查的管道。还有这个:
http
.authorizeRequests()
.anyRequest()
.authenticated()
现在我已经在方法中添加了@PreAuthorize("hasAuthority('SOME_ROLE')")
,但是如果我错过了一个方法,默认的方法是允许的。我如何配置WebSecurityConfigurerAdapter
来允许所有的请求,对于那些不包含任何PreAuthorize
注解的方法?
我试过AccessDecisionManager
,但它不起作用(或者我做错了什么)。
我该如何配置它呢?这应该是一件很容易的事情,因为permit应该是默认的,以保护应用程序。
1条答案
按热度按时间nwlls2ji1#
我有一个当前的解决方案。由于所有的控制器都实现了一个基本控制器,所以我只是向基本控制器添加了
@PreAuthorize("denyAll()")
。然后如果实现没有用一个自定义值覆盖
@PreAuthorize
,那么每个请求都将被拒绝。这也是quarkus文档中的最佳实践:https://quarkus.io/guides/spring-security将
@PreAuthorize("denyAll()")
添加到方法将确保任何用户都无法访问该方法。将其添加到类将确保任何用户都无法访问该类中未使用任何其他Spring Security注解进行注解的所有公共方法。