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

标签 java spring grails spring-security spring-annotations

我有 Controller :

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"

谢谢。

最佳答案

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

您可以对其进行调试,看看出了什么问题。

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

HTH

关于java - Grails 2.4.4 spring安全角色不适用于用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30919309/

相关文章:

java - 有没有办法在 Spring Batch 中调用 writer 之前拦截并注入(inject)另一个对象?

grails - Grails/GORM 中的集成测试 "composite unique constraint"出现问题?

grails - 我如何使用Grails中的OAuth插件从Facebook中获取个人资料信息

grails - MarkupBuilder呈现HTML SELECT元素

java - 使用递归的二分搜索

java - 是否可以在 eclipse 中的 assert 上设置断点?

Java 甲骨文事务

java - JPA/Hibernate 仅加入选定的一列

java - 使用 Maven 运行 spock 单元测试

java - Autowiring 构造函数和字段