`

Spring Security获取某个用户能ACL操作的对象ID

    博客分类:
  • J2EE
阅读更多
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两层结构肯定是不够用的
0
0
分享到:
评论

相关推荐

    spring security acl 实例

    总结来说,Spring Security ACL与MySQL的结合使用,能帮助你在Spring应用中实现复杂的数据对象访问控制。通过合理的表设计和配置,以及恰当的代码实现,你可以构建出一个健壮且灵活的安全管理系统。

    spring-security 官方文档 中文版

    - **ACL (spring-security-acl.jar)**:提供了访问控制列表支持。 - **CAS (spring-security-cas-client.jar)**:提供了与 Central Authentication Service (CAS) 的集成支持。 - **OpenID (spring-security-...

    spring security3 中文版本

    - `ACL-spring-security-acl.jar`:提供了基于 ACL 的访问控制功能。 - `CAS-spring-security-cas-client.jar`:支持 CAS 协议的单点登录功能。 - `OpenID-spring-security-openid.jar`:支持 OpenID 身份验证。 ...

    Spring Security 把授权信息写入数据库

    通常,只需要包括`spring-security-acl`、`spring-security-core`、`spring-security-core-tiger`和`spring-security-taglibs`等核心库。 接着,在`web.xml`中配置DelegatingFilterProxy,将所有HTTP请求路由到...

    Spring_Security-3.0.1_中文自学教程.pdf

    - `acl-spring-security-acl.jar`:实现了访问控制列表 (ACL) 功能。 - `cas-spring-security-cas-client.jar`:集成了 CAS 单点登录协议。 - `openid-spring-security-openid.jar`:提供了 OpenID 认证支持。 - ...

    spring security 参考手册中文版

    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 ...

    spring-security-2.0.5.jar2

    1. 会话固定攻击防护:Spring Security提供防止Session Fixation的机制,当用户成功登录后,会生成新的会话ID,以确保会话的安全性。 2. 会话超时:可以通过配置设置会话的超时时间,过期后自动注销用户。 六、...

    SpringSecurity企业及认证全套开发资源.docx

    ### SpringSecurity企业级认证全套开发资源解析 #### 一、Spring Security概述与核心特性 Spring Security 是一个功能强大且高度可定制的身份验证和安全(ACL)框架。它为基于Spring的应用程序提供了声明式方法的...

    spring security安全框架学习

    - ACL(Access Control List):Spring Security提供了一套基于对象的访问控制机制,允许针对每个对象进行细粒度的权限控制。 - 表达式访问控制(Expression-Based Access Control):使用SpEL(Spring Expression...

    spring-security-acl-mongodb:基于 Spring Security MongoDB 的访问控制列表 (ACL) 实现

    Spring Security ACL MongoDB Spring Security 访问控制列表 (ACL) 是一种方便的方式来授予对域对象(例如书籍或联系人列表)的基于用户的权限访问。 默认情况下,Spring Security通过4个SQL表管理ACL,这些SQL表在...

    springstarter

    - **查询ACL**:根据领域对象ID获取对应的ACL,以检查权限。 - **修改ACL**:添加、删除或更新ACE,改变权限设置。 - **读取和写入权限**:通过ACL判断用户是否有权读取或修改特定对象。 5. **集成Spring ...

    thymeleaf-extras-springsecurity-3.0-master.zip

    This module provides a new dialect called org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect or org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect (depending on the ...

    Spring_Security-3.0.1_官方文档

    - **ACL (spring-security-acl.jar)**:实现了基于 ACL 的访问控制。 - **CAS (spring-security-cas-client.jar)**:实现了与 CAS 单点登录系统的集成。 - **OpenID (spring-security-openid.jar)**:支持 OpenID...

    spring-security-reference-4.0.1

    - **ACL (spring-security-acl.jar)**:提供了基于访问控制列表 (ACL) 的权限管理。 - **CAS (spring-security-cas.jar)**:支持使用 CAS 单点登录协议。 - **OpenID (spring-security-openid.jar)**:提供 OpenID ...

    spring 3 security

    Spring Security提供了一些工具类和插件,如Spring Security ACL(访问控制列表)用于细粒度的权限控制,以及Spring Security Test库,方便进行安全相关的单元测试。 了解并掌握这些知识点,开发者可以有效地实现...

Global site tag (gtag.js) - Google Analytics