Spring Security 的角色和权限

2024-03-21

我正在尝试使用权限设置基于角色的安全性。我正在尝试与 Spring-Security 一起做到这一点。

我不想设置 ACL,因为这对于我的要求来说似乎有点过分了。

我只想拥有简单的权限和角色,如此处所述article http://springinpractice.com/2010/10/27/quick-tip-spring-security-role-based-authorization-and-permissions/。 不幸的是,本文没有描述如何实现给定的解决方案。

有人已经尝试过这个并可以指出我正确的方向吗?也许还有另一个博客条目描述了实现?

非常感谢。


我是相关文章的作者。

毫无疑问,有多种方法可以做到这一点,但我通常采用的方法是实现自定义UserDetails了解角色和权限。Role and Permission只是您编写的自定义类。 (没有什么花哨 -Role有一个名字和一组Permission实例,以及Permission有一个名字。)然后getAuthorities()回报GrantedAuthority看起来像这样的对象:

PERM_CREATE_POST, PERM_UPDATE_POST, PERM_READ_POST

而不是返回类似的东西

ROLE_USER, ROLE_MODERATOR

如果您的角色仍然可用UserDetails实施有一个getRoles()方法。 (我建议拥有一个。)

理想情况下,您将角色分配给用户,并自动填充相关的权限。这将涉及有一个定制UserDetailsService它知道如何执行该映射,它所要做的就是从数据库中获取映射。 (有关架构,请参阅文章。)

然后,您可以根据权限而不是角色来定义授权规则。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Security 的角色和权限 的相关文章

随机推荐

  • 带箭头刻度的 Matplotlib 曲线

    我想知道是否可以绘制一条曲线matplotlib带有箭头刻度 就像是 from pylab import y linspace 0 10 0 01 x cos y plot x y gt 应该有这样的曲线 gt gt gt 当 x 增加时
  • JPA 检查实体是否可以删除

    如何检查JPA中的实体是否可以删除并且不会抛出数据完整性异常 我想到的唯一方法是一一检查所有引用的实体 或者尝试在事务中删除然后回滚 但是还有其他更简单的方法吗 如果 可以删除 的意思是 如果实体存在于持久性上下文中 那么您已经回答了您的问
  • iPhone ASIHTTP - 区分 API 调用?

    我目前有一个视图控制器 它实现 ASIHTTP 来处理 API 调用 我的视图控制器触发了 2 个单独的调用 我需要能够区分 requestFinished ASIHTTPRequest request 方法中的两个调用 这样我就可以相应地
  • AWS Step Functions:使用 JsonPath 过滤数组

    我需要在 AWS Step Functions 状态下过滤数组 这似乎是我应该可以使用 JsonPath 轻松实现的目标 但由于某种原因我正在努力 我想要处理的状态如下所示 items id A id B id C 我想通过删除其中的条目来
  • 将表数据存储到 jquery 变量

    我想将表中的数据存储到 jquery 变量中 我使用的代码如下 但此代码将所有表标签 如 tr td 和所有内容 存储到变量中 因为我只需要将数据存储在 td 中以文本格式标记到 jquery 变量 有人可以帮忙吗 var table my
  • 检查 Firebase 实时数据库中是否已存在用户

    我得到了亚历克斯 马莫的解决方案 https stackoverflow com a 47893879 4176989为了检查我的数据库中是否存在唯一值 但快照始终为空 解决方案在这里 DatabaseReference rootRef F
  • WebConfigurationManager.AppSettings 的缓存?

    我有很多读取我的 Web 配置文件的请求 variable WebConfigurationManager AppSettings BLAH Do WebConfigurationManager AppSettings每次都从磁盘读取 还是
  • Go中从IP地址获取域名

    我正在尝试从 IP 地址解析主机名 这显然比我想象的更具挑战性 我尝试过使用几个函数 包括net LookupHost方法 但它们似乎都只是返回我输入的IP地址 这是我正在使用的代码 package main import fmt net
  • 作用域 bean:将一个 bean 注入另一个 bean

    如何在没有代理的情况下将会话范围 bean 注入另一个会话范围 bean Component Scope session class Foo Inject Bar bar Component Scope session class Bar
  • 如何在Python中浏览内存中的sqlite数据库

    我需要使用内存中的 sqlite 数据库和以下构造函数 db sqlite3 connect memory 但在调试时 我发现它非常不方便 因为与基于文件的数据库不同 我无法在调试器中浏览数据库 有没有办法即时浏览这个数据库 您可以在调试器
  • 在反应性香蕉中进行测试

    有没有办法对用反应性香蕉创建的网络进行单元测试 假设我已经使用一些输入事件建立了一些网络 是否可以验证事件已产生一些输出流 行为在一定数量的输入事件之后具有一定的价值 这样做有意义吗 我注意到有各种interpret 功能 但似乎无法弄清楚
  • IE8 中的 JavaScript 事件原型

    我正在尝试向事件原型添加一个方法 为了呼叫 设置preventDefault 或者 用 IE 来说returnValue false以及 如果需要的话 stopPropagation cancelBubble true 我认为下面的代码就足
  • Pig - 使用正则表达式解析字符串

    我被困在 Pig 中的字符串解析上 我查看了周围的文档regex extract and regex extract all并希望使用其中一项功能 我有文件 logs test log cat logs test log user 2425
  • 针对 HSQLDB 测试 DAO 的 Spring/Hibernate/Junit 示例

    我正在努力尝试实施JUnit测试以检查 DAO 的功能 DAO 将创建 读取基本的对象 表关系 我遇到的麻烦是 DAO 对于非测试代码 的持久性是通过内部解决方案完成的春季 休眠 这消除了通常的 hbm xml我发现的大多数示例都包含模板
  • 如何使用 sass -- precision ?

    我正在尝试使用 sass 指南针来制作流体网格 并且在计算它们时我需要我的 至少有 8 位数字 但现在 sass 指南针将我的小数四舍五入到 3 位数字 我发现如果使用 precision你可以告诉 sass 四舍五入到你想要的数字 我的问
  • 更简单的推送通知,也许询问服务器是否有?

    我正在开发一个IDE 作为管理员 我可以向我的所有客户 移动设备 发送通知 我一直在搜索并找到 GCM 和其他服务 我想知道是否有任何更简单的解决方案 我考虑过每 1 小时从所有客户端 移动设备 向我的服务器发起一次休息呼叫 以检查是否有新
  • 如何使用 Python 在同一 TCL shell 上运行命令

    我所有的库都是用 TCL 编写的 我想用 Python 创建一个 GUI 其中有几个按钮和其他选项 在启动时TCL shell会打开 当我单击按钮时 将在 TCL shell 上执行相应的命令 是否可以在不关闭 TCL shell 的情况下
  • 如何通过 python 中的 pandas 合并来重现 R 中 foverlaps 的相同输出?

    我正在使用 R 合并我的表重叠 https www rdocumentation org packages data table versions 1 10 4 2 topics foverlaps功能 但我需要使用 python 重现相同
  • armv8 NEON if 条件

    我想了解armv8 NEON内联汇编代码中的if条件 在armv7中 这可以通过检查溢出位来实现 如下所示 VMRS r4 FPSCR BIC r4 r4 1 lt lt 27 VMSR FPSCR r4 vtst 16 d30 d30 d
  • Spring Security 的角色和权限

    我正在尝试使用权限设置基于角色的安全性 我正在尝试与 Spring Security 一起做到这一点 我不想设置 ACL 因为这对于我的要求来说似乎有点过分了 我只想拥有简单的权限和角色 如此处所述article http springin