gpt4 book ai didi

java - 将 AOP 与 Spring Security ACL 结合使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:48 24 4
gpt4 key购买 nike

我对 Spring Security 框架很陌生,尤其是 ACL。经过几个小时的阅读后,我想我掌握了开始保护我的应用程序需要做的大部分事情。

然而,有些事情让我感到困扰:虽然很容易找到关于如何读取 ACL 权限的使用说明(例如通过 @PreAuthorize),但当您想要创建和保留它们时,它开始变得困惑。

Spring Security 手册告诉我们他们不想理会任何标准,但我们鼓励使用 AOP。这里的许多教程和答案宁愿直接在他们的业务代码中使用 AclService,破坏了过程中的“关注点分离”原则。

那我该怎么办?专业人士如何做?我应该尝试在自定义注释上定义切入点以创建/删除 ACL 条目吗?或者我应该用 ACL 问题“污染”我的代码吗?

最佳答案

好吧,经过一周的工作,我现在更清楚这些东西是如何工作的。

首先,应该尝试坚持使用 ACL 的简单、天真的方式,直接在每个服务层方法中使用 AclService。构建抽象有很大帮助(基本上是 @Service bean 中的 grantAccess(username, object, permission,...) 方法)。

一旦一切都通过 ACL 写入和@PreAuthorize/@PostAuthorize/@Secured el 测试得到保护,那么您就可以开始考虑 AOP 来清除代码中的所有安全问题。您使用 ACL 写入构成服务方法列表,并向它们添加建议,以便在一个中心位置处理所有安全性。

Spring Security ACL 非常容易设置和理解,即使在现有用户的现有项目上也是如此(您必须构建一个迁移脚本)。

关于java - 将 AOP 与 Spring Security ACL 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21791231/

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