如何在Spring Security中使用@Secured或@PreAuthorize时覆盖defaultRolePrefix

时间:2017-10-15 14:16:37

标签: java spring spring-security spring-security-oauth2

我正在使用@Secured(" ADMIN"),我的角色定义也是ADMIN(不是ROLE_ADMIN)。当我访问API时,我没有得到预期的值,它表示拒绝访问。

以下是代码,我如何覆盖ROLE_值

@PostMapping("/users")
@Loggable   
@Secured({"Administrator"})
public ResponseEntity<?> createUser( @Valid @RequestBody  User userRequest) {
.....
}

实现了CustomAccessDecisionManager,其中角色前缀(setRolePrefix(&#34;&#34;))设置为空,并且我的安全配置文件中配置了CustomDecisionManager。

空角色前缀工作正常,代码在下面

.authorizeRequests().anyRequest().authenticated()
        .accessDecisionManager(customAD()).hasRole("ADMIN")

但是当我使用@Secured时,它无法正常工作。

我的数据库包含USER1,USER2的角色。

非常感谢任何帮助。谢谢。

0 个答案:

没有答案