【发布时间】:2017-03-12 05:07:55
【问题描述】:
我将 GrantedAuthorities 作为[admin, player, user]
进行测试,我在方法中注入了 Authentication 对象并调用了authentication.getAuthorities().
,但是在 REST 控制器方法中我输入了@PreAuthorize("hasRole('ROLE_player')")我得到了我的 REST Web 服务的响应为403 forbidden.
我定义了从数据库中挑选的自定义角色。我想在执行任何业务逻辑之前授权 REST 调用。
尝试使用@Secured,但仍然无法正常工作。
【问题讨论】:
-
他们是数据库中的管理员、玩家、用户。我试过 @PreAuthorize("hasRole('player')") 但还是不行
-
Spring 期望角色以 ROLE_ 为前缀。您可以将数据库中的角色更新为 ROLE_ADMIN、ROLE_PLAYER、ROLE_USER,或者您应该能够使用 hasAuthority('admin') 而不是 hasRole() @PreAuthorize("hasAuthority('admin')")
标签: spring rest spring-security