Grails 2.4.4 spring security角色不适用于用户

时间:2015-06-18 15:13:55

标签: java spring grails spring-security spring-annotations

我有控制器:

class AdminController {

    def springSecurityService

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

表中有角色ROLE_ADMIN的用户: enter image description here

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

为什么?

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

配置: ...

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"

谢谢。

1 个答案:

答案 0 :(得分:1)

Spring Security有一个默认的UserDetailsS​​ervice,它将角色分配给用户。

您可以调试它以查看出现了什么问题。

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

HTH