gpt4 book ai didi

security - 基于Spring Security组的授权

转载 作者:行者123 更新时间:2023-12-02 22:00:36 27 4
gpt4 key购买 nike

我打算制定基于组的权限方案,但我对以下内容感到困惑:

我有一些问题:

  1. 最好的方法是什么 User > Group > Roles > Permissions User > Roles > Permissions
  2. 在这种情况下如何实现安全性(登录/记住我)(需要优秀教程的链接)。
  3. 方法级别安全性将使用注释 @PreAutorize hasPermission(#, '')或者 hasRole 或者什么?
  4. 如何根据权限(UI 是 JSF)隐藏 UI 中的组件(非管理员管理)?
  5. 如果我在 View 中隐藏组件,那么方法级安全性的重要性是什么?

最佳答案

设计安全模型本身并不是一项简单的任务,如果没有对该领域的详细了解,您试图确保它的安全几乎是不可能的。话虽如此,您在这里可以获得的任何建议都将与您的问题一样普遍。

1) 在大多数应用程序中,用户 -> 角色就足够了。在更复杂的情况下,可以使用用户 -> 角色 -> 权限,但这完全取决于您如何定义每个权限的范围。通常,您需要细粒度的角色并将其中的几个角色分配给用户。我想说,在中间添加 Groups 来设置另一个级别有点太多了。将其想象为一个文件系统 - 平面文件系统是存在的,并且不像看起来那样复杂。请花点时间做出决定,因为这是最重要的决定之一,并且会产生许多并不总是容易预测的影响。

2) 身份验证和记住我机制已经在 Spring Security 中实现 - 您所需要做的就是选择最适合您的实现并使用安全命名空间支持对其进行配置。请看一下Petclinic示例应用程序(如果您还没有)。

3) 如果您决定使用权限,则应始终检查权限。保持您选择的增益水平。始终如一。永远。

4) 根据您使用的查看技术,JSP taglib可能会派上用场(正如拉尔夫提到的)。 JSF 没有这样的东西 - 但编写类似的东西相对简单。

5) 正如 Ralph 所说,如果您隐藏某些内容,并不意味着它不再存在 - 非特权用户仍然可以调用它。

关于security - 基于Spring Security组的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7712669/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com