`
- 浏览:
17705 次
- 性别:
- 来自:
杭州
-
Grails中插件acegi-0.5.3.2安装后不能保存用户权限
- Grais中安装了acegi-0.5.3.2插件后,首先新增一些角色,然后新增用户的时候,进行角色的关联,一直关联不上。
- 通关研究相关的页面和方法,即:create.gsp--用户添加页面、edit.gsp--用户修改页面、UserController中的addRoles方法做写修改,既实现了用户权限的关联。
-
- 第一步:
- 修改grails-app\views\user\create.gsp中显示角色的代码
-
- 修改前:
-
<g:each in="${authorityList}" >
- <tr>
-
<td valign="top" class="name" align="left">${it.authority.encodeAsHTML()}</td>
-
<td align="left" ><g:checkBox name="${it.authority}"/></td>
- </tr>
- </g:each>
-
- 修改后:
-
<g:each in="${authorityList}" >
- <tr>
-
<td valign="top" class="name" align="left">${it.authority.encodeAsHTML()}</td>
-
<td align="left" ><g:checkBox name="${it}"/></td>
- </tr>
- </g:each>
-
- 第二步:
- 修改grails-app\views\user\edit.gsp中显示角色的代码
-
- 修改前:
-
<g:each var="entry" in="${roleMap}">
- <li>${entry.key.authority.encodeAsHTML()}
-
<g:checkBox name="${entry.key.authority}" value="${entry.value}"/>
- </li>
- </g:each>
-
- 修改后:
-
<g:each var="entry" in="${roleMap}">
- <li>${entry.key.authority.encodeAsHTML()}
-
<g:checkBox name="${entry.key}" value="${entry.value}"/>
- </li>
- </g:each>
-
- 第三步:
- 修改UserController中的addRoles方法
-
备注:只所以要这样修改,是因为原来的写法,params获取不到‘ROLE’这个key,因为最初的写法只能获取到role相关的角色名称;修改后的写法是获取到Role这个实体,例如:demo.Race:1,on 根据'Race'和'on'判断是否选中,然后根据id进行角色的查询,最后赋予用户角色。
-
- 修改前:
-
private void addRoles(person) {
-
for (String key in params.keySet()) {
-
if (key.contains('ROLE') && 'on' == params.get(key)) {
- Role.findByAuthority(key).addToPeople(person)
- }
- }
- }
-
- 修改后:
-
private void addRoles(person) {
-
for (String key in params.keySet()) {
-
if (key.contains('Role') && 'on' == params.get(key)) {
-
Role.findById(key.split(':').getAt(1)).addToPeople(person)
- }
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
然而,需要注意的是,随着Spring Security的发展,Acegi已被Spring Security 3.x及更高版本所取代,虽然Grails Acegi 0.5插件仍能使用,但可能缺乏最新的安全特性与更新,因此在新项目中,推荐考虑使用Spring ...
本文将详细探讨“grails-acegi-0.2.1.zip”这个插件,它是Grails框架中用于实现权限管理的Spring插件的一个早期版本。 Acegi Security是Spring框架的一个扩展,它提供了一套全面的、灵活的安全性解决方案。在Grails...
6. **grails-app**:Grails应用的标准目录结构,包含了控制器、服务、视图和领域模型等,插件可能在这里扩展或覆盖了Grails的默认行为,以实现安全控制。 7. **lib**:库目录,存放了插件依赖的外部库,如Spring ...
5. `grails-app`目录:包含了Grails应用的源代码,如控制器、服务、视图等,其中可能有与安全相关的类和配置。 6. `src`目录:存放插件的源代码,包括Groovy或Java代码,这些代码实现了插件的功能。 7. `scripts`...
这个插件的主要目标是提供一个安全的环境,允许开发者在不牺牲效率的情况下,对用户访问权限进行精细控制。 二、核心组件解析 1. `AcegiGrailsPlugin.groovy`:这是Grails插件的核心配置文件,它定义了插件的依赖...
5. `grails-app`:包含Grails应用的所有源代码,如控制器、服务、视图等,插件可能在这里添加自定义的安全逻辑。 6. `src`:源代码目录,可能包含插件的自定义组件和扩展。 7. `scripts`:包含脚本,用于插件的...
此插件的出现,使得开发人员无需深入理解复杂的安全细节,即可轻松地在Grails应用中实现用户认证与权限控制。 首先,我们来解析一下这个插件的核心组成部分: 1. **AcegiGrailsPlugin.groovy**:这是插件的主要...
这是Grails插件的配置脚本,其中包含了插件的元数据、依赖关系以及插件安装后的初始化逻辑。在Grails应用启动时,这个脚本会被执行,使得Acegi Security的相关组件能够正确地集成到Grails应用中,为应用的各个层面...
实测可用
Grails1.1中文文档-----2009.3.25
实测可用
标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...
FCKEditor是一款著名的在线文本编辑器,grails-fckeditor-0.9.5插件则是将其集成到Grails应用中的解决方案。以下是关键点: 1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认...
总之,"grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip"提供了一个宝贵的资源,让开发者有机会学习和实践Grails的ORM功能和Android的MVC设计模式。无论是对Grails框架的探索,还是对Android开发的深化,这...
groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part2 共两个包,解压后需要将扩展名.zip.bak改名为.zip重新解压。 http://dist.springsource.com/release/STS/3.8.1.RELEASE/dist/ e4.6/spring-tool-...
标题中的"elasticsearch-head-compile-after.tar.gz"和"node-v8.1.2-linux-x64.ta"分别指的是两个不同的软件组件。首先,Elasticsearch是一个流行的开源搜索引擎和分析平台,广泛应用于大数据检索、日志分析和实时...
groovy-grails-tool-suite-3.6.4.RELEASE-e4.4.2-win32-x86_64.part1 共两个压缩包,解压后将扩展名.zip.bak改为.zip再次解压。
`grails-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...
1. **p2.index**:这是一个索引文件,用于Eclipse的Plug-in Provisioning Platform (P2)管理工具,帮助用户查找、安装和管理STS中的插件。 2. **content.jar**和**artifacts.jar**:这两个文件包含了STS的元数据和...
此次我们关注的“grails-datastore-simple-1.1.5.RELEASE.zip”压缩包,便是Grails框架中关于数据存储的一个组件,它为开发者提供了简单而灵活的数据存储解决方案。 Grails Datastore Simple模块是Grails持久化层的...