我正在准备实现Spring Security UI插件(我们已经实现了Spring Security Core插件)。我知道核心插件支持用户、角色和组,但是,我在Spring Security UI插件的文档中没有看到任何提到组的内容。Spring Security UI插件不支持创建、编辑等群组吗?有人试过添加这个功能吗?
发布于 2015-04-09 21:32:57
回复晚了,但我也有同样的问题,所以我想我还是试试吧。我刚刚尝试过了,我相信答案是No。(开箱即用)
spring的安全ui插件没有考虑到组。如果您尝试编辑用户
myapp/user/edit/1
您将收到某种类型的错误,如:
Class groovy.lang.MissingPropertyException
Message
No such property: authority for class: com.myapp.security.SecGroup Possible solutions: authorities
我很好奇你有没有找到解决这个问题的办法?否则我们将不得不定制插件。
发布于 2015-05-03 06:26:20
正如Julian所指出的,UI不提供对开箱即用的组的支持。为了避免该错误,您可以执行以下操作(自定义插件):
将用户控制器复制到项目中,以覆盖插件的控制器:
grails s2ui-override user <your-package-for-controller>
从UserController的插件代码中复制"buildUserModel“,并编辑userRoleNames字段:
import grails.plugin.springsecurity.SpringSecurityUtils
class UserController extends grails.plugin.springsecurity.ui.UserController {
protected Map buildUserModel(user) {
...
// Added so that when using groups doesn't cause an error
Set userRoleNames
if (SpringSecurityUtils.securityConfig.useRoleGroups) {
String groupAuthorityFieldName = SpringSecurityUtils.securityConfig.authority.groupAuthorityNameField
userRoleNames = user[authoritiesPropertyName].collect { it[groupAuthorityFieldName].collect { it[authorityFieldName] } }
} else {
userRoleNames = user[authoritiesPropertyName].collect { it[authorityFieldName] }
}
...
}
https://stackoverflow.com/questions/24947190
复制相似问题