grails - Grails - 如何创建第二个公共域控制器
问题描述
我对 grails 框架仍然很陌生,并且正在研究基于 grails 2 的遗留应用程序。
我有一个域控制器,允许经过身份验证的用户执行所有基本的 CRUD 操作(创建、读取、更新和删除),“读取”包括列表和显示。我现在需要创建另一个控制器/视图,允许任何用户(也未经过身份验证的用户)能够只读(列表和显示)。
我环顾四周,但找不到任何“tuto”来这样做……那么这是我的问题:完成这项任务的最佳方法是什么?
我查看了 2 个选项: 选项 1 修改当前域控制器(类级别)@secured 注释以便仅注释创建、更新和删除方法。我尝试这样做,但似乎我仍然需要进行身份验证,我怀疑这与我可能需要修改的 SpringSecurity "grails.plugin.springsecurity.controllerAnnotations.staticRules" 配置有关。
选项 2 从头开始创建一个新控制器(但我想我不能要求 Grails 为同一个类生成第二个域控制器),那么构建我需要的所有数据意味着相当多的工作。
我什至不确定是否推荐了上述 2 个选项中的任何一个……有没有人遇到过这个问题(我相信很多人都有),如果是这样……推荐的方法是什么?
谢谢。
解决方案
我有一个项目,它使用 USER_ROLE 让不同的人可以访问项目的不同部分。但是人们仍然需要登录。
我还有另一个 C# 项目。同一项目有 2 个副本。公共项目是主项目的副本。但是,公共项目正在访问从数据库设置的视图。它没有访问实际的表。因此,公共项目只能对数据库记录的子集进行只读访问。它只是阅读视图。
我是 Grails 的新手。我不知道您是否可以设置域以访问视图。
我在框外思考。对于您的项目,您是否可以创建一个新的“公共只读”项目。将主项目中的部分复制并粘贴到您希望让人们访问的新“公共只读”项目中。
在这种情况下,您的新项目是主项目的一个子集,但它正在访问来自实际数据库表的记录。
你怎么看?
推荐阅读
- vim - (neo)vim/emacs 是否支持源代码装饰(元源代码信息)?
- javascript - Nuxt Firebase 不返回集合数组
- flutter - 使用主题数据浅色/深色构造函数时无法更改 fontFamily
- unicode - gitbook:如何在 markdown 中转换 emoji 短代码,以便它们在 gitbook(云)中正确导入为 emojis
- wordpress - Wordpress Gutenberg - 自定义格式
- android - 是否可以在 ViewGroup 中使用 clipToPadding 仅用于顶部填充?
- javascript - 我正在尝试初始化一个剑道滑块,但我想在没有预选值的情况下加载它
- reactjs - 使用 React 从 URL 下载文件
- ruby-on-rails - Rails DeliveryJob 弃用警告:如何升级到 MailDeliveryJob?
- java - DataFormatter 从 Apache POI 中剥离年份的前两个字符?