问题标签 [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 投票
0 回答
1515 浏览

spring - 在 spring boot 中使用 spring security acl

我使用 spring boot 1.5.1 配置没有 xml 的 spring security acl,但是有一些问题。我的配置java是:

网络安全配置类:



但是我访问这个方法抛出异常(org.springframework.security.access.AccessDeniedException);

0 投票
1 回答
77 浏览

spring - 使用弹簧安全授权对象?

我有一个具有两个域模型 Organization 和 TicketQuestion 的应用程序。经过身份验证的用户想要创建具有组织属性的票证,以解决每个用户允许某个组织的问题,如下所示:

用户 1 允许组织 1

用户 2 允许组织 2

TicketController.java 有创建票的保存方法。我有这个漏洞:User1 可以使用具有 Organization2 的票证调用方法(该票证没有权限)。我正在使用 Hibernate 过滤器在 GET 方法中授权数据,但我不知道如何保护用户想要持久且没有权限的数据??

0 投票
1 回答
256 浏览

spring-boot - 带有自定义 UserDetailsS​​ervice 的 MutableAcl.createAcl()

我目前正在尝试将 Spring 的 ACL 实现到我现有的应用程序中。可悲的是,我被困在一个特定点,这似乎是由我的 UserDetailsS​​ervice 引起的。

当我像这样调用类的createAcl()函数 时,问题/错误如下MutableAcl

ObjectIdentity如果此类实例还没有,则在此函数内部创建一个新的。为此目的PrincipalSid从当前对象创建一个新对象(保存在 ACL_SID 表中)。Authentication像这样:

当它尝试将条目保存到ACL_SID定义如下的表中时会出现问题:

如您所见,它sid是一个 100 个字符的 VARCHAR。我的自定义 User 类包含一些属性,这些属性大多转换为字符串表示形式,这导致PrincipalSid长度超过 100 个字符。现在第一个明显的解决方案是只更改toString方法以仅返回最基本的值。对我来说,这仍然有点“hacky”。有更好的解决方案吗?

0 投票
1 回答
2994 浏览

spring - Spring Boot 和 Security 动态认证和授权

我将使用 Spring Boot 和安全性开发一个登录页面,管理员可以创建用户和角色,因此系统可以有许多角色和用户......管理员也可以将角色分配给用户并删除它们。我已经使用了很好的示例来说明如何实现它,但是在阅读了这么多文档和教程之后仍然有以下问题,并且不知道实现 spring 安全性和一起启动的最佳实践是什么。尝试进入调试模式以找出什么正在一步步发生在幕后。

我的假设是每个 http 请求应用程序都引用 WebSecurityConfig 类来检查访问,但令人惊讶的是它不是那样的,同伴如下所示。似乎应用程序一开始就进入 config 类,每件事都填充。bootstrap 做了这么多后台操作,这让我感到困惑,无法理解类之间的关系。

configureGlobal-->configure-->无论你写什么作为 URL,它都会进入 /login)-->controller(登录方法)--> 使用 user/pass 提交表单--> loadUserByUsername--> 控制器(欢迎方法) --> 欢迎.jsp

1-应用程序加载时 configureGlobal 和 configure 究竟做了什么?

2-AuthenticationManagerBuilder的确切作用是什么?

3-spring security如何知道在表单提交到loadUserByUsername方法后发送用户/通行证?

4-loadUserByUsername 返回用户对象到哪里?因为当方法到达末尾时,它会重定向到控制器的欢迎方法,并在用户名和密码正确时将您发送到欢迎方法。

4-如何使用grantedAuthorities根据用户的角色将用户重定向到不同的页面?

WebSecurityConfig 类

UserDetailsS​​erviceImpl 类

用户控制器类

0 投票
2 回答
971 浏览

spring - 如何在 Spring 安全 acl 中删除某些 Sid 的 AccessControlEntry (acl_entry)?

如何使用 mutableAclService 在 spring security acl 中删除用户访问权限。这段代码可以吗

0 投票
0 回答
163 浏览

spring - 如何在spring security acl中创建深度对象的权限?

众所周知,访问对象的方法之一是使用spring security acl方法。在这个方法中,在执行了一组设置并存储了需要的​​数据之后,使用下面的方法,我们将在方法中检查用户的访问权限来做某事。考虑一个具有下图所示结构的项目。在此图中,每个用户都可以访问单个部门,因此如果在系统上创建信息,则应该基于此访问权限。例如,用户不能为不在其授权部门的员工注册工作。

考虑发送到 UI 层的信息是作为 JSON 发送的。在这种情况下,对于作业插入,JSON 需要如下所示。

这些信息在控制器层转换为Job对象,然后在服务层调用save方法。在这种情况下,给定的访问权限不起作用,因为job.employee.department.id 为 null要确定这应该是什么,我是否需要根据 id 在控制器中加载这个对象?除了ACL还有其他方法吗?

0 投票
1 回答
16 浏览

spring-security - Spring Mutableacl 版本升级后总是不产生权限

我们最近对我们现有的应用程序进行了 Spring Security 版本升级。Spring Security 已经从 2.0.4 版本升级到最新的 5 版本。所以我相信它是一个相当大的版本飞跃。

我们已经调整了所有这些 spring xml 配置文件,并相应地更新了所有这些 spring 包路径(在我们所有引用 spring 类的 java 类和 xml 配置文件中)。

版本升级似乎做得很好,我们能够运行应用程序并成功登录。然而,我们刚刚注意到可变 ACL 部分现在没有按预期工作。我们使用 spring 可变 ACL 来控制每个用户对特定记录的访问。我们有一个自定义的可变 ACL 实现,在春季版本升级之前它工作正常。可悲的是,现在它总是产生“无权限”,用户假设需要对特定记录的权限。

对于可变 ACL 部分,在此版本升级中,有人能否阐明我们需要注意的事项/我不知道的必要事项?

我没有在这里附加任何代码片段,因为我不知道代码的哪一部分可能是根本原因,该应用程序不会引发任何异常。除非我必须附上整个项目。

0 投票
2 回答
3013 浏览

java - 带有 AclPermissionEvaluator 的 Spring Boot 导致 IllegalStateException:未设置 ServletContext

各位专家,

我目前正在学习 Spring Boot,我想将它与 Spring Security ACL 一起使用。按照Spring Security的文档和Baeldung.com上的教程,我想我对需要什么有所了解。我还研究了Spring 的 DMS 示例。我通过寻找解决方案偶然发现了另一个例子。

基于这些信息,我构建了我的应用程序。作为参考,您可以在GitHub 上找到当前应用程序。

当前问题

当我启动应用程序时,我被java.lang.IllegalStateException: No ServletContext set抛出了。据我了解,这是因为在 Spring Boot 的自动配置魔术期间,我的@Configuration注释类在初始化之前ServletContext被初始化。

链接到pastebin上的完整堆栈跟踪。

到目前为止我做了什么

根据我的研究(主要是在 StackOverflow 上)和我目前对该问题的理解,将负责Bean的 s 放入自己的带@Configuration注释的类中应该会有所帮助。不幸的是,我现在迷路了。相关问题使我产生了这种想法(请参阅此问题问题。)

我的环境

  • macOS 10.12.6
  • jdk1.8.0_144
  • IntelliJ IDEA 2017.3.3(终极版)
  • Spring Boot v1.5.9.RELEASE

相关项目文件

pom.xml

应用程序属性

TraderDiaryApplication.java

数据源配置.java

WebSecurityConfig.java

非常感谢所有输入!如果需要任何进一步的信息,我会很乐意提供。

谢谢和最好的问候莫里茨

0 投票
0 回答
296 浏览

oauth-2.0 - 在 jhipster 中添加角色使用 keycloak

我在我的应用程序 oauth2 中使用了服务器密钥斗篷,所以我想知道如何添加角色。我遵循了多教程但它不起作用。

我为添加角色而修改的文件:

  • AuthoritiesConstants.java
  • 当局.csv
  • 用户.csv
  • users_authorities.csv
  • jhipster-realm.json
  • jhipster-users-0.json

RQ:角色被添加到数据库中。

谢谢。

0 投票
1 回答
40 浏览

spring - 使用 methodNameResolver 保护 Spring multiactionController 中的方法调用

我正在使用 Spring 3 并使用 simpleUrlMapping 实现了 MVC。我正在CustomerController上课。在CustomerController我有三种方法:

  1. 查看客户
  2. 添加客户
  3. 删除客户

使用方法名称解析器调用上述操作。

我的要求取决于登录的用户和权限,我想保护相应的方法调用。

删除客户方法应该由特权用户调用,而不是由所有用户调用。

我也在使用 Spring Security。有什么方法可以使用 Spring 安全性保护删除客户方法?