问题标签 [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.
spring - 需要有关 Web 应用程序安全设计的建议
我正在使用 spring security 为 Web 应用程序设计一个安全模块。有 3 个单独的战争(3 个应用程序)使用单独的登录,部署在 JBOSS 服务器中。要求是,如果用户在一个应用程序中通过身份验证,那么他应该能够在不登录的情况下访问其他应用程序。是否可以在 Web 应用程序之间共享安全上下文(不同的战争不在一个 EAR 中)。我们讨论了 SSO,但我们正试图通过 spring 安全性和应用服务器的支持来实现这一点。有什么办法吗?请提供您宝贵的建议和意见。如果您需要更多信息,请告诉我。
grails - Spring securtiy Acl 在 addPermission 上抛出空指针
我正在使用 Springsecurity-ACL-2.0-RC1 和 webflow 2.0.8.1
因此,当通过以下方式调用我的服务添加权限时:
基本上是:
我会得到一个 NullPointer:
好吧,我基本上已经尝试根据教程/示例应用程序重写我的服务 - 甚至使用了他们的代码,但基本上没有结果。
所以我对如何修复它的想法已经用完了,我正在考虑删除网络流,并简单地自己构建这个流。
谢谢西蒙
PS:这是我在stackoverflow上的第一个条目,所以如果我错过了重要信息,请告诉我,我会尽快添加
spring - 用于 Spring Security 的 JCache ACL 缓存
我正在使用 Spring Security ACL,它需要定义缓存。到目前为止,我正在使用这个:
一切都很好。但是,我切换到使用jcache
,现在返回一个与以下不兼容defaultAclJCacheFactory()
的实例:javax.cache.Cache
SpringCacheBasedAclCache
我试图搜索一个JCache
实现,org.springframework.security.acls.model.AclCache
但只有一个用于 spring 缓存和一个用于 EhCache。有没有计划推出一款jcache
呢?
json - 如何使用 Spring Security 权限有条件地将字段添加到 JSON
我正在编写一个 REST Web 服务,并且我正在使用带有基于注释的配置的 Spring 4。
我还在使用 Spring 安全性进行 HTTP 基本身份验证和授权。
我有一个ItemRestPresentation
纯粹用于表示层的类,它的实例是在我的控制器方法中使用另一个名为 Item 的类的实例(实际的域对象)创建的。ItemRestPresentation
实例通过我的控制器方法转换为以下 JSON:
ItemRestPresentation 类:
生成的 JSON :
是否可以使用 Spring Security ACL 将实例的canDelete
成员设置ItemRestPresentation
为正确的值,具体取决于当前用户是否有权删除它?
spring - spring-security 如何从 AclPermissionCacheOptimizer 清除缓存
我们正在使用 AclPermissionCacheOptimizer 在 spring-security-core-3.1.3 版本中缓存 sids 的授权对象。
现在,每当我们为缓存对象授予对新 sid 的访问权限时,AclPermissionCacheOptimizer 没有缓存对象的新 sid,因此具有新 sid 的用户无权查看此对象(因为在缓存中找到此对象,它不从 db 加载数据)。我在想,只要一个新的 sid 可以访问缓存的对象,spring security 就应该清除这个缓存。
这是xml文件的样子:
我有哪些选项可以解决此问题?任何想法?
spring - 如何在spring security acl中实现RunAs
我想让用户运行另一个角色(即管理员角色:ROLE_USER_ADMIN)来更改另一个用户拥有的对象的权限。
- 创建具有“ROLE_RUN_AS_USERADMIN”权限的角色
- 在 config.groovy 中启用 RunAs
grails.plugin.springsecurity.useRunAs = true
grails.plugin.springsecurity.runAs.key = '*****'
- 赋予生成的角色更改 Acl 详细信息的权限
grails.plugin.springsecurity.acl.authority.changeAclDetails = 'ROLE_RUN_AS_USERADMIN'
- 注释接受邀请并设置域对象权限以允许访问的服务方法
@PreAuthorize(['ROLE_USER', 'ROLE_RUN_AS_USERADMIN']) //run as ROLE_USER and ROLE_RUN_AS_INVITED_USER
但是当将访问控制条目添加到域对象的 acl 时,我仍然会收到错误消息:
无法为传递的权限和 SID 找到匹配的 ACE
grails - spring security acl 不比较按位权限
我们在 Spring Security 中遇到了意外缺少按位权限检查的问题。我们想确认这是否是预期的行为,如果是,历史是什么和/或这样做的理由。
我们正在使用 grails 插件 spring-security-acl-1.1.1,它使用 spring-security-acl 3.0.7.RELEASE。
我们正在尝试的一个提炼场景涉及一个具有 ACL 的对象,这样 aclUtilService.readAcl(obj) 返回授予角色:
随后,我们希望检查单个权限,如 WRITE 并让它返回 true。但是,这似乎不受支持。例如,对于具有上述对象上定义的所有角色的用户,执行:
返回输出:
而我们希望所有这些都返回 true。查看源代码后,我们可以看到最终在 AclImpl 中检查了权限,其中包含以下行
这解释了为什么只有确切的掩码匹配。
仅更改这一行有点涉及,我们发现在 spring-security-acl 3.1 中,此代码被重构以允许定义权限授予策略 - https://jira.spring.io/browse/SEC-1166
然而,默认的授权策略仍然只检查确切的掩码。所以:
- 为什么默认授予策略不检查按位掩码?如果不应该检查 CumulativePermission 有什么意义?
- 处理按位权限的首选方法是什么,我们是否错误地配置了权限,或者我们应该只寻求实现按位权限检查(在这种情况下,首选的方法是什么)。
感谢您的任何解释或指导。
spring - Grails 2.4.3 升级 - Spring Security ACl - SpelExpressionParser
运行应用程序时出现以下错误,编译期间没有问题。请帮助,如何解决这个问题。
spring-data-jpa - 将 Spring Security ACL 与 Spring Data REST 一起使用
我正在尝试授权 Spring Data REST 公开的 api。到目前为止,我能够进行基于角色的授权,即:
同样在同一个项目中,我有一个具有 ACL 机制的服务层,它正在工作。
我无法将 PostFilter 表达式与 Spring Data REST 一起使用,即:
如果有人将 ACL 与 Spring Data REST 一起使用,那将有很大帮助。
注意:我知道以下未解决的问题:
spring - 我应该什么时候在我的应用程序中实现 Spring Security ACL?
Spring Security ACL 看起来非常强大,并且当你可以坚持他们的数据库实现时,它很容易实现。但是,当您必须实现自己的Acl
并且AclService
(例如,参见这个(旧的)非常基本的教程,只有约 26 页)时,它似乎变得更加复杂,并且似乎很难找到它的参考和示例(该教程来自 2008 )。
例如,在我们的应用程序中,用户具有角色并属于部门。大多数时候,他们被允许根据他们的角色对属于他们部门的对象执行一些操作。在所有情况下,部门 + 角色足以决定是否应授予用户对特定对象的特定操作。
用户、角色和部门由外部应用程序管理,当用户连接时我们会从该应用程序中检索它们(我们使用的是 REST 服务,但它也可以是 LDAP 服务器)。
我们想依靠@PreAuthorize('hasPermission(…)')
实现域对象安全。因此有两种解决方案:
- 实现一个执行
PermissionEvaluator
整个检查的自定义;或者 - 使用自定义实现 ACL,该自定义
AclService
构建 ACL 正常工作所需的对象结构。
似乎实现整体AclService
会比实现 a 更困难和更复杂PermissionEvaluator
,但 ACL 似乎更标准。
您应该根据哪些标准实施其中一个?