具有Spring Security的Grails

1. Spring Security与Grails集成的概述

Spring Security吹捧了许多身份验证,授权,基于实例的功能以及各种其他功能,这些特性使其对使用安全的应用程序具有极大的吸引力。

考虑到这一点,由于Grails使用了Spring的Inversion of Control Framework和MVC设置,因此开发人员试图使用Spring Security来保护Grails。

这产生了两个值得注意的插件: Spring Security Core插件和Spring Security ACL插件 。

我们将审查这些Spring Security插件的功能,并与将Spring Security用于普通的旧Spring应用程序进行比较。

2. Spring Security Core插件

该插件提供了实用的默认设置以及许多用于自定义的配置选项。

2.1域类

Spring Security Core插件使用默认的Grails域类。 为了对插件使用标准查找,我们至少需要一个Person and Authority域类。

如果要在数据库中存储URL <==>角色映射(这是定义映射的几种方法之一),则需要一个Requestmap域类。 如果我们使用推荐的方法来映射Person和Authority之间的多对多关系,那么我们还需要一个域类来映射联接表。

要使用用户/组查找,我们还需要一个域类。 如果我们使用推荐的方法来映射“ 个人”和“ 组”之间以及“ 组”和“ 授权”之间的多对多关系,则每个域都需要一个域类来映射联接表。 我们仍然可以通过这种方法另外使用Requestmap

我们可以使用s2-quickstart生成域类。 语法非常简单:

grails s2-quickstart DOMAIN_CLASS_PACKAGE USER_CLASS_NAME ROLE_CLASS_NAME [REQUESTMAP_CLASS_NAME] [--groupClassName=GROUP_CLASS_NAME]

具有PersonAuthorityRequestmap的示例

grails s2-quickstart com.ourapp Person Authority Requestmap

2.2配置请求映射以保护URL

我们可以选择以下方法来配置请求映射以保护URL:

  • @Secured批注。 这被认为是默认方法。
  • application.groovy中的Map。 这称为静态地图
  • 存储在数据库中的 Requestmap 域类实例

我们一次只能使用一种方法。

例如,这里使用@Secured批注和Spring Expression Language(SpEL):

class SecureController {@Secured("hasRole('ROLE_USER')")def someRandomAction() {...}

2.3其他各种功能

Spring Security Core插件的一些各种功能包括:

  • 用于处理较低级别的Spring Security的帮助程序类,例如SecurityTagLib ,它提供GSP标签以支持基于用户是否通过身份验证和/或具有执行特定操作所需的角色的条件显示。
  • 事件–包括事件通知,事件侦听器和回调关闭。
  • 过滤器,包括定义将哪些过滤器应用于不同的URL模式的功能。

3. Spring Security ACL插件

Spring Security ACL插件向使用上述Spring Security Core插件的Grails应用程序添加了域对象安全支持。 因此,我们需要在build.gradle中已有其他插件。

添加域对象安全性支持是什么意思? Spring Security Core插件和其他扩展插件支持通过规则来限制对URL的访问,这些规则包括检查用户的身份验证状态,角色等。ACL插件通过添加对限制访问各个域类实例的支持来扩展此功能。

3.1方法安全性

Spring Security中通常提供的四个注释可与Spring Expression Language(SpEL)表达式一起使用,以执行基于表达式的访问控制 :

  • @PreAuthorize
  • @PreFilter
  • @PostAuthorize
  • @PostFilter

以上注释全部记录在Spring Security文档的“ 方法安全性表达式”部分中。

使用方法安全性的能力是Spring Security ACL插件和Spring Security Core插件之间的非常重要的区别。 如果要实现细粒度的访问控制,则出于这个原因,必须使用Spring Security ACL插件。

值得庆幸的是,除了Groovy和Java之间的语法差异之外,该代码实际上看起来是相同的:

@PreAuthorize("hasRole('ROLE_USER')")@PostFilter("hasPermission(filterObject, read) or " +"hasPermission(filterObject, admin)")List getAllDocs(params = [:]) {Report.list(params)}

3.2域类

像Spring Security Core插件一样,Spring Security ACL插件使用域类进行适当的结构化。

在这种情况下,域类用于管理数据库状态。 为了与通常基于JDBC的Spring Security代码兼容,将创建域类以生成表名和列名。

该插件中与持久性关联的类使用这些类。 但是,可以通过运行s2-create-acl-domains脚本来覆盖它们:

grails s2-create-acl-domains

因此,该脚本将在应用程序的grails-app/domain文件夹中生成相同的域类,以进行一些自定义。

3.3各种其他功能

Spring Security ACL插件的一些各种功能包括:

  • 身份验证运行替换:这是一个临时身份验证开关,仅持续进行一次方法调用。
  • 自定义权限: BasePermission类提供5种权限: READWRITECREATEDELETEADMINISTRATION 。 您可以根据需要添加自己的权限。
  • 标签库(taglib)用于允许和拒绝。

4。结论

Spring Security Core插件提供了许多非常有用的功能,用于通过Spring Security保护Grails,但是为了实现更复杂,更细粒度的授权,必须结合使用Spring Security ACL插件。

推荐读物: 基于创建者的授权资源(Spring Security)以及我关于Spring框架的文章,以获取有关Spring的一般知识。

翻译自: https://www.javacodegeeks.com/2019/01/grails-spring-security.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344217.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[渝粤教育] 西南科技大学 统计学原理 在线考试复习资料(3)

统计学原理——在线考试复习资料 一、单选题 1.由组距数列计算全距的公式( )。 A.最大组的标志值—最小组的标志值 B.最大组的下限值—最小组的下限值 C.最大组的上限值—最小组的上限值 D.最大值的上限值—最小组的下限值 2.众数是( )。 A.社会经济现象中的常见数。 B.次数分…

计算机部件动漫,因一个片段肝了整部番,电脑配件上榜,它满屏“虎狼之词”...

原标题&#xff1a;因一个片段肝了整部番&#xff0c;电脑配件上榜&#xff0c;它满屏“虎狼之词”现在的动漫行业格外迎来了鼎盛时期&#xff0c;就连以前不被看好的国漫最近几年也是突飞猛进。一部动漫想要有人看&#xff0c;就必定有自己的亮点&#xff0c;甚至一句话一个场…

[渝粤教育] 西南科技大学 西方经济学 在线考试复习资料(1)

西方经济学——在线考试复习资料 一、单选题 1.市场失灵指的是( ) A.在私人部门和公共部门之间资源配置不均 B.不能产生任何有用成果的市场过程 C.以市场为基础的对稀缺资源的无效率配置 D.收入分配不均 2.通常由总成本曲线的变动而引起的通货膨胀称为( ) A.需求拉动型通货膨胀…

获取周一_Ace足球网冬至版周一推介

WINTER SOLSTICE冬至冬至又称“冬节”、“贺冬”,华夏二十四节气之一、八大天象类节气之一&#xff0c;与夏至相对。Ace足球网祝全体球友冬至快乐身体健康 波运亨通Lorem Ipsum周一推介微信支付失败&#xff0c;请使用支付宝购买推介后请与Ace客服联系获取推介请勿相信其他客服…

[渝粤教育] 西南科技大学 财务管理与分析 在线考试复习资料(1)

财务管理与分析——在线考试复习资料 一、单选题 1.某投资方案年营业收入240万元,年销售成本170万元,其中折旧70万元,所得税率40%,则该方案年营业现金净流量为( )。 A.70万元 B.112万元 C.140万元 D.84万元 2.如果投资规模不同的两个独立投资项目的评价,应优先选择( )。 A.净现…

oauth2和jwt_使用具有OAuth2的Web应用程序和JWT的使用来调用API – WSO2 API Manager

oauth2和jwt在这篇文章中&#xff0c;我将分享我在WSO2 API管理器&#xff08;API-M&#xff09;中针对行业中非常常见且有用的场景的经验和理解。 简要地说明以下流程。 公开了一个API&#xff0c;供应用程序开发人员在API管理器的控制下使用&#xff08;这增加了对该API的访…

[渝粤教育] 西南科技大学 高等数学1 在线考试复习资料

高等数学1——在线考试复习资料 一、单选题 1.如果函数在区间上的导数( ),那么在区间上是一个常数( )。 A.恒为常数 B.可能为常数 C.恒为零 2.设,则( )。 A. B. C.0 D.1 3.设,则( )。 A. B. C. D. 4.求极限的结果是( )。 A.0 B. C. D.不存在 5.求的反函数( )。 A. B. C. D.…

jquery table ajax,JQuery Ajax动态加载Table数据的实例讲解

我们在jsp定义一个select和一个table&#xff0c;要求实现根据select的选值&#xff0c;动态加载table数据。table第一次加载数据的function定义如下&#xff1a;function loadData() {var c ;$(#import-table).DataTable({ajax: {url: "../../../hot/getByCode.action…

android listview 去掉水波纹效果_CocosCreator之分层管理的ListView

前言进入公众号回复listview即可获得demo的git地址。之前写的一篇文章《Creator之ScrollView那些事》中提到了官方Demo中提供的ListViewCtl,只是实现了纵向滑动&#xff0c;没有实现横向滑动。并且建议官方可以把功能做全然后放入组件库中供开发者使用。然后有个牛逼大神说这个…

【渝粤教育】电大中专微生物与寄生虫基础 (2)_1作业 题库

1.属于真核型微生物的是&#xff08;&#xff09;。 A.衣原体 B.放线菌 C.真菌 D.病毒 E.支原体 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;B 2.下列哪一个特点不是微生物的共有特点&#xff08;&#xff09; A.结构简单 B.肉眼不直接可见 C.需要借助显微镜观察 …

小米小爱蓝牙音箱_UG绘制一个小米小爱同学蓝牙音箱

今天来绘制这么一个小米蓝牙音箱&#xff0c;渲染后的效果如下建模步骤&#xff1a;1打开UG&#xff0c;首先绘制一个直径为135mm的圆拉伸80mm。2在XZ平面上绘制草图&#xff0c;以Y轴旋转360度求差3整体抽壳2mm4继续在拉伸面上绘制这么一个大概的草图5选择草图的小圆&#xff…

J2Pay –完整示例

介绍 在本节中&#xff0c;我们将详细探讨如何使用网关并成功调用所有四种方法&#xff0c;即购买&#xff0c;退款&#xff0c;作废和重新计费。 对于此示例&#xff0c;我们将使用授权网关。 让我们开始。 首先&#xff0c;我们将获得Authorize网关对象。 Gateway gateway…

ajax17,17个使用AJAX技术的数据表格控件

为了将数据高效的展示出来&#xff0c;数据需要有合适的结构&#xff0c;展现结构设计的越好&#xff0c;用户就越容易理解信息的内容。因此&#xff0c;提高数据的可萃取性和可扫描性非常有意义。表&#xff0c;是一个非常好的数据呈现结构&#xff0c;非常便于人们分析和理解…

【渝粤教育】电大中专测量学 (5)作业 题库

1.测量学是研究地球的形状和大小以及确定地面点&#xff08;&#xff09;位置的科学。 A.平面 B.空间 C.曲面 D.高程 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2.测量学中的水准面是一个&#xff08;&#xff09;。 A.斜平面 B.水平面 C.竖直面 D.曲面 正确 正…

【渝粤教育】电大中专电商运营实操 (25)作业 题库

电子商务最重要的是&#xff08;&#xff09; A商务 B网站 C信息技术 D货物 正确 正确答案&#xff1a;左边查询 学生答案&#xff1a;A 2下列关于电子商务的特点叙述错误的是&#xff08;&#xff09; A全球性 B简单的电子化支付手段 C交易环节多&#xff0c;营销成本高 D信息…

tx2无法识别网络_织点智能算法大牛刘思伟:商品识别在收银结算场景的应用与落地...

线下门店消费越快捷、过程越便利&#xff0c;就越能吸引顾客的二次购物。相较于传统的人工收银方式&#xff0c;使用自助收银设备不仅可以减少顾客排队等候的时间&#xff0c;提升收银效率&#xff0c;同时对经营者来说&#xff0c;可以有效降低人工成本。目前&#xff0c;市面…

windows服务器网站日志,windows服务器网站日志文件

windows服务器网站日志文件 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。网页防篡改可实时监控网站目录&#xff0c;并通过备份恢…

【渝粤教育】电大中专电子商务网站建设与维护 (4)作业 题库

1.阿里巴巴的盈利项目主要是哪些&#xff08; &#xff09; A.委托设计公司网站 B.诚信通 C.以上都正确 D.中国供应商 E.网上推广项目 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;未作答 2.阿里巴巴目前的电子商务在哪个阶段&#xff08; &#xff09; A.信息流 B…

初始化创建画布_使用HTML5,画布和开放数据创建全球降水(雨)可视化

初始化创建画布我目前正在为Three.js编写下一本书&#xff0c;其中一章涉及可视化开放数据。 在寻找可以使用的数据时&#xff0c;我遇到了来自NOAA的一组数据。 通过此站点&#xff0c;您可以以网格格式下载一组全世界的每月降水报告。 因此&#xff0c;我下载了它们&#xff…

【渝粤教育】电大中专药品储存与养护技术 (2)作业 题库

1.在能够预见到某种药品经过短时间储存易发生质量变化时&#xff0c;该种药品的出库原则是&#xff08;&#xff09;。 A.近效期先出 B.先产先出 C.先进先出 D.易变先出 错误 正确答案&#xff1a;左边查询 学生答案&#xff1a;B 2.药品批准文号的格式为&#xff08;&#xff…