Spring Security:具有任意授权通配符

g6ll5ycj  于 2022-12-04  发布在  Spring
关注(0)|答案(1)|浏览(138)

目前,我们有@PreAuthorize表达式之王:

@PreAuthorize("hasAnyAuthority('SCOPE_all.adm', 'SCOPE_qdcac.edi', 'SCOPE_qdcac.pet', 'SCOPE_qdcac.con')")

有没有办法分辨出像SCOPE_qdcac.*这样的东西...

k97glaaz

k97glaaz1#

@PreAuthorize接受SpEL表达式,因此您可以编写自己的表达式
比如

@Component
class ScopeSpel {
  public boolean hasScope(Authentication authentication) {
      // do your check(s) here
  }
}

并将其用作@PreAuthorize("@scopeSpel.hasScope(authentication)")

相关问题