`
xyz20003
  • 浏览: 296059 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

(翻译)Spring Security-2.0.x参考文档“安全数据库表结构”

阅读更多
安全数据库表结构

可以为框架采用不同的数据库结构,这个附录为所有功能提供了一种参考形式。 你只要为需要的功能部分提供对应的表结构。

这些DDL语句都是对应于HSQLDB数据库的。 你可以把它们当作一个指南,参照它,在你使用的数据库中定义表结构。
A.1. User表

UserDetailsService的标准JDBC实现,需要从这些表里读取用户的密码,帐号信息(可用或禁用)和权限(角色)列表。

  create table users(
      username varchar_ignorecase(50) not null primary key,
      password varchar_ignorecase(50) not null,
      enabled boolean not null);

  create table authorities (
      username varchar_ignorecase(50) not null,
      authority varchar_ignorecase(50) not null,
      constraint fk_authorities_users foreign key(username) references users(username));
      create unique index ix_auth_username on authorities (username,authority);;

A.1.1. 组权限

Spring Security 2.0支持了权限分组

create table groups (
  id bigint generated by default as identity(start with 0) primary key,
  group_name varchar_ignorecase(50) not null);

create table group_authorities (
  group_id bigint not null,
  authority varchar(50) not null,
  constraint fk_group_authorities_group foreign key(group_id) references groups(id));

create table group_members (
  id bigint generated by default as identity(start with 0) primary key,
  username varchar(50) not null,
  group_id bigint not null,
  constraint fk_group_members_group foreign key(group_id) references groups(id));
       

A.2. 持久登陆(Remember-Me)表

这个表用来保存安全性更高的持久登陆remember-me实现所需要的数据。 如果你直接或通过命名空间使用了JdbcTokenRepositoryImpl,你就会需要这些表结构。

create table persistent_logins (
  username varchar(64) not null,
  series varchar(64) primary key,
  token varchar(64) not null,
  last_used timestamp not null);

A.3. ACL表

这些表对应Spring Security的ACL实现。

create table acl_sid (
  id bigint generated by default as identity(start with 100) not null primary key,
  principal boolean not null,
  sid varchar_ignorecase(100) not null,
  constraint unique_uk_1 unique(sid,principal) );

create table acl_class (
  id bigint generated by default as identity(start with 100) not null primary key,
  class varchar_ignorecase(100) not null,
  constraint unique_uk_2 unique(class) );

create table acl_object_identity (
  id bigint generated by default as identity(start with 100) 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 generated by default as identity(start with 100) 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) );

分享到:
评论
2 楼 returnofking 2008-10-22  
楼主真是一个救星,在此谢过!!
1 楼 singer_wang 2008-08-25  
怎么没看到文档里有这部分内容啊?

相关推荐

    Spring Security 2.0.x完全中文参考文档

    ### Spring Security 2.0.x完全中文参考文档 #### 序言 本文档旨在为用户提供一份详尽且全面的Spring Security 2.0.x版本的中文指南,它不仅覆盖了核心概念、配置方法以及实际应用案例,还深入探讨了安全框架的...

    Spring_Security_2.0.x中文参考文档

    ### Spring Security 2.0.x中文参考文档知识点详解 #### 序言与入门 - **Spring Security 是什么?** - Spring Security 是一个强大的、高度可定制的身份验证和访问控制框架。 - **历史** - Spring Security 的...

    spring security 参考文档.pdf

    ### Spring Security 参考文档知识点概览 #### 一、Spring Security 概念与入门 ##### 1.1 Spring Security 是什么? Spring Security 是一款基于 Spring 框架的安全插件,提供了完整的安全性解决方案,包括身份...

    [信息办公]凯撒java版SaaS OA协同办公软件 v2.0_saas-oa.rar

    5. **数据库设计**:MySQL、Oracle或PostgreSQL等关系型数据库可能被用作数据存储,涉及到复杂的表结构设计,如多对多关联、主从复制等,以满足高并发和大数据量的需求。 6. **云服务集成**:软件可能集成了云存储...

    基于springboot的设备管理系统+源代码+文档说明

    - 页面交互使用Vue2.x,极大的提高了开发效率 - 引入swagger文档支持,方便编写API接口文档 **数据权限设计思想** - 管理员管理、角色管理、部门管理,可操作本部门及子部门数据 - 菜单管理、定时任务、参数...

    基于springboot教育资源共享平台源码数据库文档.zip

    数据库文档则详细描述了数据库表结构、字段定义以及表之间的关系。这些文档对于理解和维护项目至关重要,也是项目交付的重要组成部分。 基于Spring Boot的教育资源共享平台以其轻量级、易开发、易部署的特点,成为...

    SpringBoot基于Vue的米家商城的设计与实现及源码和数据库

    在安全方面,Spring Security提供了强大的安全控制功能,确保系统的安全性和访问控制。 此外,项目还包括了如定时任务的实现、日志记录、异常处理、接口文档生成等系统设计的关键点。定时任务可以使用Spring的@...

    springboot 图书管理系统 , 界面简单大方 ,上手较简单。.zip

    - **数据库设计**:设计合适的数据库表结构,编写实体类。 - **接口开发**:根据业务需求,编写Controller层的接口代码。 - **前端界面**:利用HTML、CSS和JavaScript(或Vue、React等框架)设计用户界面。 - **...

    基于Java的在线测试系统的设计与实现.zip

    3. 设计合理的数据库表结构,优化查询性能。 4. 异步处理机制(如Spring Task或Quartz)处理耗时任务,如成绩批量计算。 5. 使用Docker进行环境隔离和部署,确保系统一致性。 六、系统测试 1. 单元测试:针对每个...

    基于springboot的前后端分离的校园失物招领系统设计与实现.zip

    在实现阶段,SpringBoot提供了丰富的库支持,如Spring Data JPA用于操作数据库,Spring Security进行安全控制,Swagger2用于生成API文档,方便前端开发者理解和使用。同时,我们还可以利用Spring Boot Admin监控应用...

    springboot392瑜伽馆管理系统的设计与实现pf.rar

    系统后端还涉及到安全框架Spring Security的使用,以保证系统的用户认证和授权。 系统前端界面使用了Vue.js框架。Vue.js是一个用于构建用户界面的渐进式JavaScript框架,它具有轻量、易上手、响应式等优点。在实际...

Global site tag (gtag.js) - Google Analytics