Spring Security里只找到了检查某个用户能否操作某个对象的方法,如hasPermission
没找到获取用户能够对某类对象进行ACL操作的ID列表的方法
时间紧,只好自己用sql从ACL表里查了
select distinct a.object_id_identity from acl_object_identity a
inner join acl_entry b on a.id=b.acl_object_identity
--检查ACL权限MASK
and b.mask in (:mask)
--检查className
and a.object_id_class=(select ID as class_id from acl_class where class=:className)
inner join acl_sid c on b.sid=c.id
and
--用户权限或者角色权限都可以
((c.principal=1 and c.sid=:username) or (c.principal=0 and c.sid in :roles))
:mask见BasePermission.xxx.getMask()
:roles可以从session里取
Collection<GrantedAuthority> authorities=SecurityContextHolder.getContext().getAuthentication().getAuthorities()
其实在我的项目里role被扩展为permission了
SpringSecurity里的User/Role两层结构肯定是不够用的
分享到:
相关推荐
总结来说,Spring Security ACL与MySQL的结合使用,能帮助你在Spring应用中实现复杂的数据对象访问控制。通过合理的表设计和配置,以及恰当的代码实现,你可以构建出一个健壮且灵活的安全管理系统。
- **ACL (spring-security-acl.jar)**:提供了访问控制列表支持。 - **CAS (spring-security-cas-client.jar)**:提供了与 Central Authentication Service (CAS) 的集成支持。 - **OpenID (spring-security-...
- `ACL-spring-security-acl.jar`:提供了基于 ACL 的访问控制功能。 - `CAS-spring-security-cas-client.jar`:支持 CAS 协议的单点登录功能。 - `OpenID-spring-security-openid.jar`:支持 OpenID 身份验证。 ...
通常,只需要包括`spring-security-acl`、`spring-security-core`、`spring-security-core-tiger`和`spring-security-taglibs`等核心库。 接着,在`web.xml`中配置DelegatingFilterProxy,将所有HTTP请求路由到...
Spring Security 提供了一个特性,允许一个用户临时切换为另一个用户的身份进行操作。 --- ##### 第19章:信道安全 Spring Security 支持配置信道的安全性,确保通信过程中数据的完整性和保密性。 --- ##### 第...
- `acl-spring-security-acl.jar`:实现了访问控制列表 (ACL) 功能。 - `cas-spring-security-cas-client.jar`:集成了 CAS 单点登录协议。 - `openid-spring-security-openid.jar`:提供了 OpenID 认证支持。 - ...
Spring Security 参考 1 第一部分前言 15 1.入门 16 2.介绍 17 2.1什么是Spring Security? 17 2.2历史 19 2.3版本编号 20 2.4获得Spring安全 21 2.4.1使用Maven 21 Maven仓库 21 Spring框架 22 2.4.2 Gradle 23 ...
1. 会话固定攻击防护:Spring Security提供防止Session Fixation的机制,当用户成功登录后,会生成新的会话ID,以确保会话的安全性。 2. 会话超时:可以通过配置设置会话的超时时间,过期后自动注销用户。 六、...
### SpringSecurity企业级认证全套开发资源解析 #### 一、Spring Security概述与核心特性 Spring Security 是一个功能强大且高度可定制的身份验证和安全(ACL)框架。它为基于Spring的应用程序提供了声明式方法的...
- ACL(Access Control List):Spring Security提供了一套基于对象的访问控制机制,允许针对每个对象进行细粒度的权限控制。 - 表达式访问控制(Expression-Based Access Control):使用SpEL(Spring Expression...
Spring Security ACL MongoDB Spring Security 访问控制列表 (ACL) 是一种方便的方式来授予对域对象(例如书籍或联系人列表)的基于用户的权限访问。 默认情况下,Spring Security通过4个SQL表管理ACL,这些SQL表在...
- **查询ACL**:根据领域对象ID获取对应的ACL,以检查权限。 - **修改ACL**:添加、删除或更新ACE,改变权限设置。 - **读取和写入权限**:通过ACL判断用户是否有权读取或修改特定对象。 5. **集成Spring ...
This module provides a new dialect called org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect or org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect (depending on the ...
- **ACL (spring-security-acl.jar)**:实现了基于 ACL 的访问控制。 - **CAS (spring-security-cas-client.jar)**:实现了与 CAS 单点登录系统的集成。 - **OpenID (spring-security-openid.jar)**:支持 OpenID...
Spring Security使用一个默认的`AccessDecisionManager`来决定用户是否有权限访问某个资源。可以对其进行定制以满足不同的需求。 **定制访问决策管理器**:可以通过实现`AccessDecisionManager`接口并覆盖其方法...
- **ACL (spring-security-acl.jar)**:提供了基于访问控制列表 (ACL) 的权限管理。 - **CAS (spring-security-cas.jar)**:支持使用 CAS 单点登录协议。 - **OpenID (spring-security-openid.jar)**:提供 OpenID ...
Spring Security提供了一些工具类和插件,如Spring Security ACL(访问控制列表)用于细粒度的权限控制,以及Spring Security Test库,方便进行安全相关的单元测试。 了解并掌握这些知识点,开发者可以有效地实现...
"基于Spring Security的ACL实现与扩展.pptx"可能包含具体的示例,演示如何在实际项目中配置和使用Spring Security ACL,包括创建和管理ACL对象、分配权限、进行访问控制决策等。通过深入学习这个案例,读者可以更好...