我正在使用grails 2.3.4和spring-security-core:2.0-RC4,并且作为必备条件,我需要具有权限组和特定于用户的权限,而无需添加组...

在文档上:



真的没有办法做到这一点吗?如果我有这个要求,我应该选择其他替代方法而不是spring sec吗?也许手动进行?小路能解决我的问题吗?

编辑:useRoleGroups在配置中显然是使它仅按组获得授权的设置。

任何帮助表示赞赏。

最佳答案

我实现了GormUserDetailsS​​ervice,并使用以下方法修改了loadAuthorities方法:

        if (useGroups) {
        if (authorityGroupPropertyName) {
            authorities = userAuthorities.collect { it."$authorityGroupPropertyName" }.flatten().unique().collect { new SimpleGrantedAuthority(it."$authorityPropertyName") }
        }
        else {
            log.warn "Attempted to use group authorities, but the authority name field for the group class has not been defined."
        }
    }
        LinkedHashSet<Role> ua = UserRole.findAllByUsuario(user).collect { it.role }

    if(!ua.empty) {
        ua.flatten().unique().collect { new SimpleGrantedAuthority(it.authority) }.each { authorities.add(it) }
    }

10-07 15:31