问题标签 [spring-security-acl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
417 浏览

java - 如何在组级别实现 ACL?例如,只有 A 学校的老师可以更新 A 学校的日历

尝试使用 Spring Security ACL 解决以下问题:只有 A 学校的教师可以更新 A 学校的日历。

是否可以在不为每位教师添加 ACL 条目的情况下实现这样的权限结构以拥有对该学校日历的更新权限(方法 #1)?或者是否可以定义学校 A 组,将该学校的每位教师分配到该组,并授予该组对学校日历的写入权限(方法 #2)?

方法 #2 更可取,因为方法会为单个项目(如日历)生成相同数量的记录,但如果共享另一个项目(例如学校 A 的留言板),方法 #2 只需要 1 个额外记录,方法 #1 将如果教师被删除或添加(2 次删除/2 次更新),则需要为每位教师提供新记录,并且更难维护。

0 投票
1 回答
1136 浏览

java - 使用 Spring Security ACL - 如何将对象的 READ 权限分配给所有用户(注册用户和匿名用户)?

授予所有用户(注册用户和匿名用户)对对象的 READ 权限的最佳方式是什么?我正在开发一个系统,用户可以创建任何人都可以查看的项目,但只能由创建者或管理员用户编辑。

想到的一种解决方案是 Spring 为未经身份验证的用户提供角色 ROLE_ANONYMOUS,我可以将其更改为 ROLE_USER 并将其提供给我所有经过身份验证的用户,这样每个人都是 ROLE_USER。然后,所有可公开查看的实体都将为 ROLE_USER 插入 READ 权限,然后我可以使用组 (GrantedAuthoritySid) 来确定您是否有权访问(每个人都可以访问)。

我想知道是否有更好的方法来实现这一点,而无需授予 ROLE_USER 对每个公共对象的 READ 权限?

0 投票
1 回答
543 浏览

grails - Spring 安全 acl 和 Postgres

使用“spring-security-acl:2.0-RC1”作为 Grails 插件以及链接到 Postgres 9.3 数据源的应用程序,启动时会发生以下错误:

  • 在激活或不激活“缓存 1.1.1”的情况下进行测试,结果相同
  • mysql没有问题
  • 环境:grails 2.3.4

如果我或任何贡献者没有找到解决方法,JIRA 票将在未来几天开放。谢谢。

0 投票
1 回答
256 浏览

grails - 在 Spring Security ACL 抛出 AccessDeniedException 后,如何请求凭据?

我正在使用 Grails 2.2.3 和 Spring Security ACL 插件 1.1.1,我希望有一个对公众开放的 URL,并且使用@PostAuthorize注释的服务层可以保护资源。我们这样做是因为要确定用户是否有权访问特定对象,我们需要先查看该对象。

我想做的是在控制器层捕获 AccessDeniedException,然后让浏览器请求凭据并重试。我尝试了将响应状态设置为 401 并重定向回自身以重试的天真的方法。我遇到的问题是浏览器从未要求提供凭据。

要将其放入代码中,我想做的是在控制器层中:

服务层将简单地具有:

谢谢你的帮助!

0 投票
1 回答
1193 浏览

java - Spring ACL 使用 JPA,但 ACL impl 是 JDBC。两种方式

我有一个难题。我正在使用 spring-security-acl 和他们的 jdbc 实现。问题是,我在其他查询中使用 JPA 存储库(Spring-data-jpa)。我认为,这没问题,因为 JPA 已实现:

所以我在这个 JPA 中已经有了数据源,直接使用 JDBC 的 spring-security 没有问题。

但问题在于交易

我在用

但是spring-acl jdbc想要

当我想对我的项目实施 ACL 时,我:

但我使用@Transactional

org.springframework.orm.jpa.JpaTransactionManager

而不是 jdbc

org.springframework.jdbc.datasource.DataSourceTransactionManager

不经常,但有时我有:

我对 JDBC 的事务没有那么深入的了解,所以会有问题添加

org.springframework.jdbc.datasource.DataSourceTransactionManager

并有两个事务管理器?还有另一个选项是编写我自己的 acl 服务而不是 JdbcMutableAclService。但是使用 jdbc 是更简单的解决方案。

有人可以告诉我什么更好吗?

或者将 JDBC 与 JPA 结合使用不是很好的解决方案并且只使用其中一种技术?感谢您的回答

0 投票
1 回答
1446 浏览

spring - 带有 Spring-security-ACL 的 JPA

是否可以在 Spring Security ACL 中使用 JPA,我只能看到 jdbc 实现。这是我在 bean 中的 JPA 设置:

但我对事务管理器有疑问,因为我使用org.springframework.orm.jpa.JpaTransactionManager 的是:

org.springframework.jdbc.datasource.DataSourceTransactionManager.

主要问题是当我开始创建 acl 时,第一次尝试我必须运行异常事务,第二次尝试(在浏览器中再试一次)是否可以。

这是第一次尝试的错误:

有人可以帮我弄这个吗?谢谢

0 投票
2 回答
5634 浏览

java - @PostAuthorize 和 @PostFilter 注释的有效用例

我们刚刚从2.0.8迁移到 Spring Security 3.0.8(可以升级到最新版本3.2.X ,因为我们的核心 Spring 库仍在3.0.X上,我们计划稍后在业务允许时升级)。

我知道我们现在有用于保护方法的注释,如@PreAuthorize@PostAuthorize、和。@Secured@PreFilter@PostFilter

我了解 的使用@PreAuthorize,这真的很有意义。但是想不出任何您会使用@PostAuthorize@PostFilter注释的有效用例?

使用它的人可以向我解释使用它们的合理用例吗?

提前致谢!

0 投票
1 回答
575 浏览

spring - grails:无法解决依赖关系 - spring-security-acl

我正在尝试运行应用程序,但出现错误:

另外,我尝试了“编译”和“解决依赖关系”,错误是一样的。我的 BootConfig.groovy:

我有一个需要的插件 c:\grails\grails-2.2.4\plugins\

我无法从我的工作站访问 Internet,因此我手动安装了插件。

请提供解决此问题的解决方案。

0 投票
1 回答
691 浏览

java - spring security acl 管理权限

我尝试使用 Spring Security ACL 强制执行一个新应用程序,经过阅读后,我对每个 ACE 的权限都有疑问。我期望如果主体对域对象实例具有管理权限(16),则能够使用此注释访问方法:

它似乎工作。
所以,我的问题是:这些权限不是分层的吗?
我的意思是,为什么我必须明确指定具有读取权限的方法的管理员权限?admin 不是比 read “更大”吗?
我在想,如果我授予用户管理员权限,那么 hte 用户将能够访问所有受“较低”操作(C、R、U、D)保护的方法/对象,而不是管理员。

0 投票
1 回答
1760 浏览

java - 春季安全许可程序检查

我有一个弹簧安全 ACL 系统,它似乎工作正常,只是我不确定我应该如何以编程方式执行权限检查。
我的应用分为 3 层(视图、服务(业务)、DAO),我想在服务层执行身份验证。因此,对于将域对象作为参数的方法:

问题通过注释解决。
但是对于将没有 acl 的对象作为参数的方法,我必须以编程方式检查用户是否具有权限。
假设我有一个对象 ProjectWrapper:

所以现在我的 Service 方法收到了这种类型的参数:

我需要使用 AclService 来执行此操作吗?就像我需要创建/更新权限一样,还是有更清洁/更好的可能性?
deleteProject(Long id) 方法的相同问题,首先我必须从 db 获取对象以检查当前用户是否具有删除权限。