在项目的权限处理要实现细粒度的权限。这个几天特意从网上找了一些资料。自己整理一下。我研究的是官方例子contract.
CREATE TABLE ACL_SID(
ID BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
PRINCIPAL BOOLEAN NOT NULL,
SID VARCHAR(100) NOT NULL,
CONSTRAINT UNIQUE_UK_1 UNIQUE(SID,PRINCIPAL)
);
CREATE TABLE ACL_CLASS(
ID BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
CLASS VARCHAR(100) NOT NULL,
CONSTRAINT UNIQUE_UK_2 UNIQUE(CLASS)
);
CREATE TABLE ACL_OBJECT_IDENTITY(
ID BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
OBJECT_ID_CLASS BIGINT NOT NULL,
OBJECT_ID_IDENTITY BIGINT NOT NULL,
PARENT_OBJECT BIGINT,
OWNER_SID BIGINT,
ENTRIES_INHERITING BOOLEAN NOT NULL,
CONSTRAINT UNIQUE_UK_3 UNIQUE(OBJECT_ID_CLASS, OBJECT_ID_IDENTITY),
CONSTRAINT FOREIGN_FK_1 FOREIGN KEY(PARENT_OBJECT)REFERENCES ACL_OBJECT_IDENTITY(ID),
CONSTRAINT FOREIGN_FK_2 FOREIGN KEY(OBJECT_ID_CLASS)REFERENCES ACL_CLASS(ID),
CONSTRAINT FOREIGN_FK_3 FOREIGN KEY(OWNER_SID)REFERENCES ACL_SID(ID)
);
CREATE TABLE ACL_ENTRY(
ID BIGINT AUTO_INCREMENT NOT NULL PRIMARY KEY,
ACL_OBJECT_IDENTITY BIGINT NOT NULL,
ACE_ORDER INT NOT NULL,
SID BIGINT NOT NULL,
MASK INTEGER NOT NULL,
GRANTING BOOLEAN NOT NULL,
AUDIT_SUCCESS BOOLEAN NOT NULL,
AUDIT_FAILURE BOOLEAN NOT NULL,
CONSTRAINT UNIQUE_UK_4 UNIQUE(ACL_OBJECT_IDENTITY,ACE_ORDER),
CONSTRAINT FOREIGN_FK_4 FOREIGN KEY(ACL_OBJECT_IDENTITY) REFERENCES ACL_OBJECT_IDENTITY(ID),
CONSTRAINT FOREIGN_FK_5 FOREIGN KEY(SID) REFERENCES ACL_SID(ID)
);
CREATE TABLE USERS(
USERNAME VARCHAR(50) NOT NULL PRIMARY KEY,
PASSWORD VARCHAR(50) NOT NULL,
ENABLED BOOLEAN NOT NULL
);
CREATE TABLE AUTHORITIES(
USERNAME VARCHAR(50) NOT NULL,
AUTHORITY VARCHAR(50) NOT NULL,
CONSTRAINT FK_AUTHORITIES_USERS FOREIGN KEY(USERNAME) REFERENCES USERS(USERNAME)
);
CREATE UNIQUE INDEX IX_AUTH_USERNAME ON AUTHORITIES(USERNAME,AUTHORITY);
CREATE TABLE CONTACTS(
ID BIGINT NOT NULL PRIMARY KEY,
CONTACT_NAME VARCHAR(50) NOT NULL,
EMAIL VARCHAR(50) NOT NULL
);
ss的acl是基于domain类型的控制method方法的拦截tablib控制显示内容AfterInvocation后置拦截。上面是他用到的表结构
ACL_SID:可能是一个具体的用户,也可能是一个角色名,用来标识一组具有相同身份的用户
OBJECT_IDENTITY:由domain(就是我们要控制的pojo类)的类型和pojo的主键组成.
ACL_ENTRY:保存某个SID可以对某个OBJECT_IDENTITY进行哪些操作.
方法的拦截:spring security 只能拦截services方法
页面中使用<sec:acl />
分享到:
相关推荐
spring security acl 代码实例 spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例
**Spring Security ACL 实现与扩展** **ACL 简介** 访问控制列表(Access Control List,简称 ACL)是一种用于...如需深入了解,请参考权限管理手册:http://www.family168.com/oa/springsecurity/html2009-08-19。
spring security 3.1.4的release包 需要的可以拿走
8. **Spring Security ACL**: - 对象级权限管理(ACL)允许开发者对应用内的具体对象实施细粒度的访问控制,如对数据库记录或文件系统的访问。 9. **Spring MVC集成**: - Spring Security 无缝集成于Spring MVC...
spring-security-acl-neo4j 带有 Neo4j 图形数据库的 Spring Security Acl 支持库动机该项目背后的动机是通过消除使用传统 RDBMS 作为后端数据存储创建的瓶颈来提高 Spring Security ACL 的性能。 阅读这篇了解更多...
- **Hibernate ACL**: 为了实现ACL,Spring Security 提供了与Hibernate ORM集成的实现。`org.springframework.security.acls.hibernate.HibernateAclService` 是关键接口,用于处理ACL对象的CRUD操作。 - **...
Spring Security ACL是Spring Security框架的一个重要扩展,它提供了一种强大的访问控制机制,允许开发者对应用程序的数据进行细粒度的权限管理。这个"springstarter"项目可能是为了演示或教学如何在Spring Boot应用...
- **ACL (spring-security-acl.jar)**:提供了访问控制列表支持。 - **CAS (spring-security-cas-client.jar)**:提供了与 Central Authentication Service (CAS) 的集成支持。 - **OpenID (spring-security-...
在本例中,我们将探讨如何在Spring Security 3.0.4中使用ACL特性。 首先,ACL允许开发者定义对象级别的安全性,这意味着你可以控制用户对特定数据对象的操作权限。例如,你可以设定某个用户只能读取但不能修改特定...
- `spring-security-acl-4.0.0.CI-SNAPSHOT-javadoc.jar`:访问控制列表模块的Java文档,涉及对象级别的权限控制。 在Spring Security 4.0.0中,这些jar包一起工作,提供了一套完整的解决方案,用于实现用户认证...
SpringSecurity是Java领域中一款强大的安全框架,主要用于Web应用程序的安全管理。它提供了全面的身份验证、授权、会话管理以及安全相关的功能,可以帮助开发者构建安全的Web应用。在本笔记中,我们将深入探讨Spring...
- `ACL-spring-security-acl.jar`:提供了基于 ACL 的访问控制功能。 - `CAS-spring-security-cas-client.jar`:支持 CAS 协议的单点登录功能。 - `OpenID-spring-security-openid.jar`:支持 OpenID 身份验证。 ...
5. **spring-security-acl-3.1.3.RELEASE.jar**:访问控制列表(ACL)模块提供了对对象级别的细粒度权限控制。它允许开发者指定哪个用户或角色可以对哪些具体对象进行读、写或其他操作。 6. **spring-security-acl-...
Spring Security:spring家族一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转...
在`SpringSecurityAclDemo`中,你可以看到如何配置和使用Spring Security的ACL特性,这有助于理解如何在实际项目中实现更复杂的权限控制需求。务必动手实践,以更好地掌握Spring Security的精髓。
Spring Security ACL MongoDB Spring Security 访问控制列表 (ACL) 是一种方便的方式来授予对域对象(例如书籍或联系人列表)的基于用户的权限访问。 默认情况下,Spring Security通过4个SQL表管理ACL,这些SQL表在...
`spring-security-acl-3.0.2.RELEASE.jar`提供了细粒度的访问控制列表(Access Control List,ACL)功能,允许开发者对单个对象进行权限控制,例如,控制用户是否能读取、修改或删除特定的数据记录。 **Spring ...
2. **Spring Security ACL (Access Control List)**:此模块提供了细粒度的权限控制,允许开发者指定特定用户或角色对特定对象的操作权限。ACL允许你定义谁能读、写、修改甚至删除应用中的敏感数据。 3. **Spring ...