java - Spring Security 自定义用户组授权

标签 java web-applications spring-security authorization

我正在尝试使用 Spring Security 实现一个 Web 应用程序。我了解 Spring Security 基于角色的机制,并且可以让它工作。我的问题是,在我的网络应用程序中,用户可以创建自己的组并向其添加 friend (应用程序的其他用户)。用户对某些页面的访问是基于这个好友组的。它的工作方式应该类似于 Facebook 用户和组。 如何使用 Spring Security 实现这些自定义用户组和对用户页面的访问?此用例是否有默认机制?或者我应该实现自己的数据库表?

最佳答案

我正在使用具有 ACL 机制的用户组。基本上,我确保在为对象创建 ACL 时设置所有者。然后,当另一个用户尝试访问该对象时,将检查所有者的组以查看是否存在匹配项。

这当然意味着当用户更改他的组时,该对象会“随他而去”。

如果您不希望出现此行为,您可以将组对象的 ACL 作为安全对象的父 ACL。然后,当用户更改组时,您应该为组对象 ACL 设置正确的条目。这样,安全对象就与用户组绑定(bind),而不是与用户本人绑定(bind)。

Spring Security Domain Object Security (ACLs)

关于java - Spring Security 自定义用户组授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851517/

相关文章:

grails - 成功登录后grails重定向

java - 登录外部 Api 并向其发送 JSON

java - 领域模型和用户界面

java - 两个 html 表单,一个结果页面一个提交按钮

visual-studio-2010 - 在 Visual Studio 2010 中调试时启动多个项目

javascript - 我在哪里可以找到适合初学者的示例或教程,将 three.js 动画合并到 Web 应用程序中?

javascript - 使用 CSS 定位自身以外的样式

spring - Spring MVC 中的安全 RESTful Web 方法

spring - 如何从 Spring 授权服务器示例中获取刷新 token

java - ModelMapper:将集合映射到其他结构的集合