`
wststar
  • 浏览: 17705 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Grails中插件acegi-0.5.3.2安装后不能保存用户权限

 
阅读更多
  1. Grais中安装了acegi-0.5.3.2插件后,首先新增一些角色,然后新增用户的时候,进行角色的关联,一直关联不上。   
  2. 通关研究相关的页面和方法,即:create.gsp--用户添加页面、edit.gsp--用户修改页面、UserController中的addRoles方法做写修改,既实现了用户权限的关联。   
  3.   
  4. 第一步:   
  5. 修改grails-app\views\user\create.gsp中显示角色的代码   
  6.   
  7. 修改前:   
  8. <g:each in="${authorityList}" >   
  9.     <tr>   
  10.         <td valign="top" class="name" align="left">${it.authority.encodeAsHTML()}</td>   
  11.         <td align="left" ><g:checkBox name="${it.authority}"/></td>   
  12.     </tr>   
  13. </g:each>   
  14.   
  15. 修改后:   
  16. <g:each in="${authorityList}" >   
  17.     <tr>   
  18.         <td valign="top" class="name" align="left">${it.authority.encodeAsHTML()}</td>   
  19.         <td align="left" ><g:checkBox name="${it}"/></td>   
  20.     </tr>   
  21. </g:each>   
  22.   
  23. 第二步:   
  24. 修改grails-app\views\user\edit.gsp中显示角色的代码   
  25.   
  26. 修改前:   
  27. <g:each var="entry" in="${roleMap}">   
  28.     <li>${entry.key.authority.encodeAsHTML()}   
  29.         <g:checkBox name="${entry.key.authority}" value="${entry.value}"/>   
  30.     </li>   
  31. </g:each>   
  32.   
  33. 修改后:   
  34. <g:each var="entry" in="${roleMap}">   
  35.     <li>${entry.key.authority.encodeAsHTML()}   
  36.         <g:checkBox name="${entry.key}" value="${entry.value}"/>   
  37.     </li>   
  38. </g:each>   
  39.   
  40. 第三步:   
  41. 修改UserController中的addRoles方法   
  42. 备注:只所以要这样修改,是因为原来的写法,params获取不到‘ROLE’这个key,因为最初的写法只能获取到role相关的角色名称;修改后的写法是获取到Role这个实体,例如:demo.Race:1,on 根据'Race''on'判断是否选中,然后根据id进行角色的查询,最后赋予用户角色。   
  43.   
  44. 修改前:   
  45. private void addRoles(person) {   
  46.     for (String key in params.keySet()) {   
  47.         if (key.contains('ROLE') && 'on' == params.get(key)) {   
  48.             Role.findByAuthority(key).addToPeople(person)   
  49.         }   
  50.     }   
  51. }   
  52.   
  53. 修改后:   
  54. private void addRoles(person) {   
  55.     for (String key in params.keySet()) {   
  56.         if (key.contains('Role') && 'on' == params.get(key)) {   
  57.             Role.findById(key.split(':').getAt(1)).addToPeople(person)   
  58.         }   
  59.     }   
  60. }  
分享到:
评论

相关推荐

    grails-acegi-0.5.zip

    然而,需要注意的是,随着Spring Security的发展,Acegi已被Spring Security 3.x及更高版本所取代,虽然Grails Acegi 0.5插件仍能使用,但可能缺乏最新的安全特性与更新,因此在新项目中,推荐考虑使用Spring ...

    grails-acegi-0.2.1.zip

    本文将详细探讨“grails-acegi-0.2.1.zip”这个插件,它是Grails框架中用于实现权限管理的Spring插件的一个早期版本。 Acegi Security是Spring框架的一个扩展,它提供了一套全面的、灵活的安全性解决方案。在Grails...

    grails-acegi-0.5.2.zip

    6. **grails-app**:Grails应用的标准目录结构,包含了控制器、服务、视图和领域模型等,插件可能在这里扩展或覆盖了Grails的默认行为,以实现安全控制。 7. **lib**:库目录,存放了插件依赖的外部库,如Spring ...

    grails-acegi-0.4.1.zip

    5. `grails-app`目录:包含了Grails应用的源代码,如控制器、服务、视图等,其中可能有与安全相关的类和配置。 6. `src`目录:存放插件的源代码,包括Groovy或Java代码,这些代码实现了插件的功能。 7. `scripts`...

    grails-acegi-0.1.zip

    这个插件的主要目标是提供一个安全的环境,允许开发者在不牺牲效率的情况下,对用户访问权限进行精细控制。 二、核心组件解析 1. `AcegiGrailsPlugin.groovy`:这是Grails插件的核心配置文件,它定义了插件的依赖...

    grails-acegi-0.5.1.zip

    5. `grails-app`:包含Grails应用的所有源代码,如控制器、服务、视图等,插件可能在这里添加自定义的安全逻辑。 6. `src`:源代码目录,可能包含插件的自定义组件和扩展。 7. `scripts`:包含脚本,用于插件的...

    grails-acegi-0.3.zip

    此插件的出现,使得开发人员无需深入理解复杂的安全细节,即可轻松地在Grails应用中实现用户认证与权限控制。 首先,我们来解析一下这个插件的核心组成部分: 1. **AcegiGrailsPlugin.groovy**:这是插件的主要...

    grails-acegi-0.2.zip

    这是Grails插件的配置脚本,其中包含了插件的元数据、依赖关系以及插件安装后的初始化逻辑。在Grails应用启动时,这个脚本会被执行,使得Acegi Security的相关组件能够正确地集成到Grails应用中,为应用的各个层面...

    geb-grails-0.5.jar

    实测可用

    Grails1.1中文文档-----2009.3.25

    Grails1.1中文文档-----2009.3.25

    geb-grails-0.5-sources.jar

    实测可用

    grails-fck-editor-0.3.zip_grails_grails-fck-editor

    标题中的"grails-fck-editor-0.3.zip_grails_grails-fck-editor"表明这是一个与Grails框架相关的插件,具体来说是FCKeditor的一个版本。FCKeditor是一款广泛使用的开源富文本编辑器,它允许用户在网页上创建和编辑...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    FCKEditor是一款著名的在线文本编辑器,grails-fckeditor-0.9.5插件则是将其集成到Grails应用中的解决方案。以下是关键点: 1. 安装与配置:在Grails项目中添加插件依赖,然后通过配置文件调整编辑器的参数,如默认...

    grails-datastore-gorm-plugin-support-2.0.4.RELEASE.zip

    总之,"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

    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-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

    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-doc-CN-1.0.rar` 文件包含的是 Grails 1.0 版本的中文参考文档,对于那些不熟悉英文文档或者想要深入了解 Grails 的中文用户来说,这是一个极其宝贵的资源。 文档主要涵盖以下几个关键知识点: 1. **...

    springsource-tool-suite-3.9.11.RELEASE-e4.14.0-up.zip

    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-datastore-simple-1.1.5.RELEASE.zip”压缩包,便是Grails框架中关于数据存储的一个组件,它为开发者提供了简单而灵活的数据存储解决方案。 Grails Datastore Simple模块是Grails持久化层的...

Global site tag (gtag.js) - Google Analytics