Grails 2.4.4 spring 安全角色不适用于用户

Grails 2.4.4 spring security role doesn't apply to user

我有控制器:

class AdminController {

    def springSecurityService

    @Secured(['ROLE_ADMIN', 'ROLE_USER'])
    def index() {
        render "test";
    }

以及 table 中具有角色 ROLE_ADMIN 的用户:

但是,当我使用时: springSecurityService.getPrincipal().getAuthorities() 只有一个角色:ROLE_NO_ROLES

为什么?

def loggedInUser = springSecurityService.currentUser; returns 正确的用户。

配置: ...

grails.plugin.springsecurity.userLookup.userDomainClassName = '...'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = '...'
grails.plugin.springsecurity.authority.className = '...'
grails.plugin.springsecurity.authority.groupAuthorityNameField = 'authorities'
grails.plugin.springsecurity.useRoleGroups = true
grails.plugin.springsecurity.securityConfigType = "Annotation"

谢谢。

spring 安全性有一个默认的 UserDetailsS​​ervice,它将角色分配给用户。

你可以调试它看看哪里出了问题。

或者您创建自己的: https://grails-plugins.github.io/grails-spring-security-core/guide/userDetailsService.html

HTH