在Spring Security的官方文档上面只给出了关于security ACL的hsql脚本,但是在使用Oracle数据库时spring没有明确给出数据库创建脚本和配置说明,以下是自己在使用Oracle数据库时使用到的sql脚本和配置
sql脚本如下
-------------------------------------------------------- -- Create sequences -------------------------------------------------------- CREATE SEQUENCE "ACL_CLASS_SEQ" INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "ACL_ENTRY_SEQ" INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "ACL_OBJECT_IDENTITY_SEQ" INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 START WITH 1 CACHE 20 NOORDER NOCYCLE; CREATE SEQUENCE "ACL_SID_SEQ" INCREMENT BY 1 MAXVALUE 9999999999999999999999999999 START WITH 1 CACHE 20 NOORDER NOCYCLE; -------------------------------------------------------- -- ACL_CLASS Table -------------------------------------------------------- CREATE TABLE "ACL_CLASS" ( "ID" NUMBER(19,0) NOT NULL, "CLASS" VARCHAR2(100) NOT NULL, PRIMARY KEY ("ID"), CONSTRAINT "ACL_CLASS_CLASS_UQ" UNIQUE ("CLASS") )TABLESPACE &TSDATA; -------------------------------------------------------- -- ACL_ENTRY Table -------------------------------------------------------- CREATE TABLE "ACL_ENTRY" ( "ID" NUMBER(19,0) NOT NULL, "ACL_OBJECT_IDENTITY" NUMBER(19,0) NOT NULL, "ACE_ORDER" NUMBER(19,0) NOT NULL, "SID" NUMBER(19,0) NOT NULL, "MASK" NUMBER(19,0) NOT NULL, "GRANTING" NUMBER(1,0) NOT NULL, "AUDIT_SUCCESS" NUMBER(1,0) NOT NULL, "AUDIT_FAILURE" NUMBER(1,0) NOT NULL, PRIMARY KEY ("ID"), CONSTRAINT "ACL_ENTRY_IDENT_ORDER_UQ" UNIQUE ("ACL_OBJECT_IDENTITY", "ACE_ORDER") )TABLESPACE &TSDATA; ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_GRANTING_CK" CHECK ("GRANTING" in (1,0)); ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_AUDIT_SUCCESS_CK" CHECK ("AUDIT_SUCCESS" in (1,0)); ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "ACL_ENTRY_AUDIT_FAILURE_CK" CHECK ("AUDIT_FAILURE" in (1,0)); -------------------------------------------------------- -- ACL_OBJECT_IDENTITY Table -------------------------------------------------------- CREATE TABLE "ACL_OBJECT_IDENTITY" ( "ID" NUMBER(19,0) NOT NULL, "OBJECT_ID_CLASS" NUMBER(19,0) NOT NULL, "OBJECT_ID_IDENTITY" NUMBER(19,0) NOT NULL, "PARENT_OBJECT" NUMBER(19,0), "OWNER_SID" NUMBER(19,0) NOT NULL, "ENTRIES_INHERITING" NUMBER(1,0) NOT NULL, PRIMARY KEY ("ID"), CONSTRAINT "ACL_OBJ_ID_CLASS_IDENT_UQ" UNIQUE ("OBJECT_ID_CLASS", "OBJECT_ID_IDENTITY") )TABLESPACE &TSDATA; ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "ACL_OBJ_ID_ENTRIES_CK" CHECK ("ENTRIES_INHERITING" in (1,0)); -------------------------------------------------------- -- ACL_SID Table -------------------------------------------------------- CREATE TABLE "ACL_SID" ( "ID" NUMBER(19,0) NOT NULL, "PRINCIPAL" NUMBER(1,0) NOT NULL, "SID" VARCHAR2(100) NOT NULL, PRIMARY KEY ("ID"), CONSTRAINT "ACL_SID_PRINCIPAL_SID_UQ" UNIQUE ("SID", "PRINCIPAL") )TABLESPACE &TSDATA; ALTER TABLE "ACL_SID" ADD CONSTRAINT "ACL_SID_PRINCIPAL_CK" CHECK ("PRINCIPAL" in (1,0)); -------------------------------------------------------- -- Relationships -------------------------------------------------------- ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "FK_ACL_ENTRY_ACL_OBJECT_ID" FOREIGN KEY ("ACL_OBJECT_IDENTITY") REFERENCES "ACL_OBJECT_IDENTITY" ("ID"); ALTER TABLE "ACL_ENTRY" ADD CONSTRAINT "FK_ACL_ENTRY_SID" FOREIGN KEY ("SID") REFERENCES "ACL_SID" ("ID"); ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_CLASS" FOREIGN KEY ("OBJECT_ID_CLASS") REFERENCES "ACL_CLASS" ("ID"); ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_PARENT" FOREIGN KEY ("PARENT_OBJECT") REFERENCES "ACL_OBJECT_IDENTITY" ("ID"); ALTER TABLE "ACL_OBJECT_IDENTITY" ADD CONSTRAINT "FK_ACL_OBJ_ID_SID" FOREIGN KEY ("OWNER_SID") REFERENCES "ACL_SID" ("ID"); -------------------------------------------------------- -- Triggers -------------------------------------------------------- CREATE OR REPLACE TRIGGER "ACL_CLASS_ID" BEFORE INSERT ON ACL_CLASS FOR EACH ROW BEGIN SELECT ACL_CLASS_SEQ.NEXTVAL INTO :new.id FROM dual; END; / CREATE OR REPLACE TRIGGER "ACL_ENTRY_ID" BEFORE INSERT ON ACL_ENTRY FOR EACH ROW BEGIN SELECT ACL_ENTRY_SEQ.NEXTVAL INTO :new.id FROM dual; END; / CREATE OR REPLACE TRIGGER "ACL_OBJECT_IDENTITY_ID" BEFORE INSERT ON ACL_OBJECT_IDENTITY FOR EACH ROW BEGIN SELECT ACL_OBJECT_IDENTITY_SEQ.NEXTVAL INTO :new.id FROM dual; END; / CREATE OR REPLACE TRIGGER "ACL_SID_ID" BEFORE INSERT ON ACL_SID FOR EACH ROW BEGIN SELECT ACL_SID_SEQ.NEXTVAL INTO :new.id FROM dual; END; /
spring配置片段如下
<beans:bean id="aclService" class="org.springframework.security.acls.jdbc.JdbcMutableAclService"> <beans:constructor-arg ref="dataSource" /> <beans:constructor-arg ref="lookupStrategy" /> <beans:constructor-arg ref="aclCache" /> <beans:property name="classIdentityQuery" value="select ACL_CLASS_SEQ.currval from dual"/> <beans:property name="sidIdentityQuery" value="select ACL_SID_SEQ.currval from dual"/> </beans:bean>
您还没有登录,请您登录后再发表评论
spring security acl 代码实例 spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例
初学SpringCloud简单配置Oracle数据库,从Oracle数据库中获取数据
连接的是oracle 11g,配置成功,查询,更新,都测试成功了
Spring Security 把授权信息写入数据库
用spring security实现了acl权限控制。因为文件大小问题去掉了lib。
Spring Security 安全实例-数据库简单应用(用户从数据库中获取) 把简单的Spring Security实例中的配置文件中的用户信息放到数据库中,从数据库中调用用户信息的实现实例
Spring Security 安全实例-数据库应用(用户从数据库中获取) 添加了从数据库中获取用户信息、角色信息、用户权限信息
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。
终于实现了spring security 2.0 基于数据库的配置,可以连接数据库了,呵呵,由于加入了spring,jar包有些大,没有上传jar,或者新建一个工程,加入spring,然后将jar考过来或者从其他模块中考入jar, 这个工程下的...
Spring Security 基于数据库的权限管理配置
spring-security-acl-neo4j 带有 Neo4j 图形数据库的 Spring Security Acl 支持库动机该项目背后的动机是通过消除使用传统 RDBMS 作为后端数据存储创建的瓶颈来提高 Spring Security ACL 的性能。 阅读这篇了解更多...
在开源的SpringSide上作权限控制的demo,附带数据库。分层清晰,设计合理,系统松散耦合。结合业界流行的安全框架精心设计开发。
mybatis+spring+struts2 使用oracle数据库 增删改查,是把csdn原先的mysql数据库改成oracle数据库,直接在myeclipse上导入就行,并添加数据库myuser表,还有id,username,password等字段,压缩包下又myuser用记事本...
基于Spring Security的ACL实现与扩展ppt(徐会生著),用ppt2003可打开
spring-security使用数据库用户认证
java中用spring boot连接oracle数据库代码下载
spring security3.0.4 的acl使用例子,相关的说明在 http://blog.csdn.net/lhx1026/archive/2010/11/22/6027125.aspx
本资源使用SpringBoot整合Oracle数据库连接双数据源,源码已进行测试真是有效,使用时更改bootstrap.yml数据库配置即可
bean配置跑spring security(mysql数据库)_spring security例子 博客:blog.csdn.net/dsundsun
相关推荐
spring security acl 代码实例 spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例spring security acl 代码实例
初学SpringCloud简单配置Oracle数据库,从Oracle数据库中获取数据
连接的是oracle 11g,配置成功,查询,更新,都测试成功了
Spring Security 把授权信息写入数据库
用spring security实现了acl权限控制。因为文件大小问题去掉了lib。
Spring Security 安全实例-数据库简单应用(用户从数据库中获取) 把简单的Spring Security实例中的配置文件中的用户信息放到数据库中,从数据库中调用用户信息的实现实例
Spring Security 安全实例-数据库应用(用户从数据库中获取) 添加了从数据库中获取用户信息、角色信息、用户权限信息
用STS(Spring Tool Suite)开发的,spring mvc + spring security 实现的最简单的登录系统,无数据库。
终于实现了spring security 2.0 基于数据库的配置,可以连接数据库了,呵呵,由于加入了spring,jar包有些大,没有上传jar,或者新建一个工程,加入spring,然后将jar考过来或者从其他模块中考入jar, 这个工程下的...
Spring Security 基于数据库的权限管理配置
spring-security-acl-neo4j 带有 Neo4j 图形数据库的 Spring Security Acl 支持库动机该项目背后的动机是通过消除使用传统 RDBMS 作为后端数据存储创建的瓶颈来提高 Spring Security ACL 的性能。 阅读这篇了解更多...
在开源的SpringSide上作权限控制的demo,附带数据库。分层清晰,设计合理,系统松散耦合。结合业界流行的安全框架精心设计开发。
mybatis+spring+struts2 使用oracle数据库 增删改查,是把csdn原先的mysql数据库改成oracle数据库,直接在myeclipse上导入就行,并添加数据库myuser表,还有id,username,password等字段,压缩包下又myuser用记事本...
基于Spring Security的ACL实现与扩展ppt(徐会生著),用ppt2003可打开
spring-security使用数据库用户认证
java中用spring boot连接oracle数据库代码下载
spring security3.0.4 的acl使用例子,相关的说明在 http://blog.csdn.net/lhx1026/archive/2010/11/22/6027125.aspx
本资源使用SpringBoot整合Oracle数据库连接双数据源,源码已进行测试真是有效,使用时更改bootstrap.yml数据库配置即可
bean配置跑spring security(mysql数据库)_spring security例子 博客:blog.csdn.net/dsundsun