问题标签 [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 - 在 spring boot 中使用 spring security acl
我使用 spring boot 1.5.1 配置没有 xml 的 spring security acl,但是有一些问题。我的配置java是:
网络安全配置类:
但是我访问这个方法抛出异常(org.springframework.security.access.AccessDeniedException);
spring - 使用弹簧安全授权对象?
我有一个具有两个域模型 Organization 和 TicketQuestion 的应用程序。经过身份验证的用户想要创建具有组织属性的票证,以解决每个用户允许某个组织的问题,如下所示:
用户 1 允许组织 1
用户 2 允许组织 2
TicketController.java 有创建票的保存方法。我有这个漏洞:User1 可以使用具有 Organization2 的票证调用方法(该票证没有权限)。我正在使用 Hibernate 过滤器在 GET 方法中授权数据,但我不知道如何保护用户想要持久且没有权限的数据??
spring-boot - 带有自定义 UserDetailsService 的 MutableAcl.createAcl()
我目前正在尝试将 Spring 的 ACL 实现到我现有的应用程序中。可悲的是,我被困在一个特定点,这似乎是由我的 UserDetailsService 引起的。
当我像这样调用类的createAcl()
函数
时,问题/错误如下MutableAcl
:
ObjectIdentity
如果此类实例还没有,则在此函数内部创建一个新的。为此目的PrincipalSid
从当前对象创建一个新对象(保存在 ACL_SID 表中)。Authentication
像这样:
当它尝试将条目保存到ACL_SID
定义如下的表中时会出现问题:
如您所见,它sid
是一个 100 个字符的 VARCHAR。我的自定义 User 类包含一些属性,这些属性大多转换为字符串表示形式,这导致PrincipalSid
长度超过 100 个字符。现在第一个明显的解决方案是只更改toString
方法以仅返回最基本的值。对我来说,这仍然有点“hacky”。有更好的解决方案吗?
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 类
UserDetailsServiceImpl 类
用户控制器类
spring - 如何在 Spring 安全 acl 中删除某些 Sid 的 AccessControlEntry (acl_entry)?
如何使用 mutableAclService 在 spring security acl 中删除用户访问权限。这段代码可以吗
spring - 如何在spring security acl中创建深度对象的权限?
众所周知,访问对象的方法之一是使用spring security acl方法。在这个方法中,在执行了一组设置并存储了需要的数据之后,使用下面的方法,我们将在方法中检查用户的访问权限来做某事。考虑一个具有下图所示结构的项目。在此图中,每个用户都可以访问单个部门,因此如果在系统上创建信息,则应该基于此访问权限。例如,用户不能为不在其授权部门的员工注册工作。
考虑发送到 UI 层的信息是作为 JSON 发送的。在这种情况下,对于作业插入,JSON 需要如下所示。
这些信息在控制器层转换为Job对象,然后在服务层调用save方法。在这种情况下,给定的访问权限不起作用,因为job.employee.department.id 为 null。 要确定这应该是什么,我是否需要根据 id 在控制器中加载这个对象?除了ACL还有其他方法吗?
spring-security - Spring Mutableacl 版本升级后总是不产生权限
我们最近对我们现有的应用程序进行了 Spring Security 版本升级。Spring Security 已经从 2.0.4 版本升级到最新的 5 版本。所以我相信它是一个相当大的版本飞跃。
我们已经调整了所有这些 spring xml 配置文件,并相应地更新了所有这些 spring 包路径(在我们所有引用 spring 类的 java 类和 xml 配置文件中)。
版本升级似乎做得很好,我们能够运行应用程序并成功登录。然而,我们刚刚注意到可变 ACL 部分现在没有按预期工作。我们使用 spring 可变 ACL 来控制每个用户对特定记录的访问。我们有一个自定义的可变 ACL 实现,在春季版本升级之前它工作正常。可悲的是,现在它总是产生“无权限”,用户假设需要对特定记录的权限。
对于可变 ACL 部分,在此版本升级中,有人能否阐明我们需要注意的事项/我不知道的必要事项?
我没有在这里附加任何代码片段,因为我不知道代码的哪一部分可能是根本原因,该应用程序不会引发任何异常。除非我必须附上整个项目。
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
非常感谢所有输入!如果需要任何进一步的信息,我会很乐意提供。
谢谢和最好的问候莫里茨
oauth-2.0 - 在 jhipster 中添加角色使用 keycloak
我在我的应用程序 oauth2 中使用了服务器密钥斗篷,所以我想知道如何添加角色。我遵循了多教程但它不起作用。
我为添加角色而修改的文件:
- AuthoritiesConstants.java
- 当局.csv
- 用户.csv
- users_authorities.csv
- jhipster-realm.json
- jhipster-users-0.json
RQ:角色被添加到数据库中。
谢谢。
spring - 使用 methodNameResolver 保护 Spring multiactionController 中的方法调用
我正在使用 Spring 3 并使用 simpleUrlMapping 实现了 MVC。我正在CustomerController
上课。在CustomerController
我有三种方法:
- 查看客户
- 添加客户
- 删除客户
使用方法名称解析器调用上述操作。
我的要求取决于登录的用户和权限,我想保护相应的方法调用。
删除客户方法应该由特权用户调用,而不是由所有用户调用。
我也在使用 Spring Security。有什么方法可以使用 Spring 安全性保护删除客户方法?