Spring Security怎么实现自定义访问策略


本篇内容主要讲解“SpringSecurity怎么实现自定义访问策略”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringSecurity怎么实现自定义访问策略”吧!前言:我们将探索一个用户共享电子表格的系统,每个电子表格的访问权限单独存储。我们已经尽可能简单地对权限存储进行了显式建模;想象一下,它在调用其他地方的记录系统。请注意,在这个简化的实现中,访问决定是二进制的:要么有访问权,要么没有。在这个实现中,读/写访问权没有区别。打开SpreadsheetService会显示一个用@Secured注释的方法。@Secured 注解参数是我们要限制的域对象访问的完全限定类名。该方法具有相同类型的参数,这是我们将保护的特定实例。方便地,@Secured注解不需要按名称引用参数;它可以在我们的AccessDecisionVoter中单独按类型检索。访问决策由AccessDecisionManager做出,它将授权给已配置的AccessDecisionVorters列表。投票者可以根据自己的应用程序逻辑选择批准或拒绝特定的方法调用。如果投票人不能决定某个特定的方法调用,它可以选择弃权,将决定权留给其他投票人。默认情况下,您将获得基于确认的访问决策管理器,该管理器允许在只有一个投票人投票授予访问权限时调用方法,而不管是否有投票拒绝访问。我们的四个目的是,我们需要一个自定义投票者,根据存储的访问记录验证用户对电子表免费云主机域名格的访问。我们通过扩展AbstractAclVoter来实现这一点,对于已配置的已处理域对象类和方法调用,AbstractAclVoter可以查找参数域对象实例。我们将实现投票方法,该方法由经过身份验证的用户、安全方法调用和一组ConfigAttributes传递。我们的投票者被传递一个或多个ConfigAttributes,就像传递给@Secured注释本身一样,我们通过调用布尔支持(ConfigAttribute)来验证它:考虑到这些实现,只有当ConfigAttribute与配置的ProcessDomainObjectClass不匹配时,投票者才会弃权。根据存储的访问记录,在所有其他情况下,投票人将投票批准或拒绝访问。我们需要配置应用程序的两个部分,以便触发自定义访问决策投票者逻辑。首先,我们需要通过@EnableGlobalMethodSecurity(securedEnabled=true)激活@Secured注释,这是在AccessDecisionConfiguration中完成的。其次,我们需要将电子表格AccessDecisionVoter添加到AccessDecisionManager考虑的决策投票者列表中。为此,我们扩展了GlobalMethodSecurity配置以覆盖AccessDecisionManager AccessDecisionManager()。我们称之为super.accessDecisionManager()获取默认的基于确认的访问决策管理器,只需在末尾添加我们自己的投票人。如果您需要保护多个域对象类型,可以很容易地向列表中添加更多投票者。我们的电子表格AccessDecisionVoterit测试使用模拟用户Alice和Bob,以及恶意的第三用户Eve,他们都试图访问单个电子表格。我们可以看到,对电子表格的访问遵守每个测试开始时存储的规则:Alice可以访问电子表格。Bob还可以访问电子表格。Eve无法访问电子表格,因为她收到了AccessDeniedException。到此,相信大家对“SpringSecurity怎么实现自定义访问策略”有了更深的了解,不妨来实际操作一番吧!这里是百云主机网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

相关推荐: html注释的作用是什么

这篇文章主要介绍“html注释的作用是什么”,在日常操作中,相信很多人在html注释的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”html注释的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!使用解释:在…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 08/22 18:06
Next 08/22 18:06

相关推荐