《spring_security_3_安全权限管理手册()》由会员分享,可在线阅读,更多相关《spring_security_3_安全权限管理手册()(26页珍藏版)》请在金锄头文库上搜索。
1、SpringSpring SecuritySecurity 3.03.0 安全权限管理手册安全权限管理手册参考文献: 1、 中的 spring security 权限管理手册。 2、spring security3.0 权限管理手册 3、spring 的相关资料。本文档内容仅作为公司权限管理资料用,对于企业来说,权限管理将是系 统中的非常重要的一个模块,权限的设计也是参考相关资料进行整理和补充。 系统将通过数据库进行管理用户权限。权限管理搭建要的问题:权限管理搭建要的问题: 1 1、区分、区分 AuthenticationAuthentication(验证)和(验证)和 Authorizati
2、onAuthorization(授权)(授权) 验证 这个用户是谁? 用户身份可靠吗? 授权 某用户 A 是否可以访问资源 R 某用户 A 是否可以执行 M 操作 某用户 A 是否可以对资源 R 执行 M 操作 2 2、SSSS 中的验证特点中的验证特点 支持多种验证方式 支持多种加密格式 支持组件的扩展和替换 可以本地化输出信息 3 3、SSSS 中的授权特点中的授权特点 支持多种仲裁方式 支持组件的扩展和替换 支持对页面访问、方法访问、对象访问的授权。 4 4、SSSS 核心安全实现核心安全实现 Web 安全 通过配置 Servlet Filter 激活 SS 中的过滤器链 实现 Sess
3、ion 一致性验证 实现免登陆验证(Remember-Me 验证) 提供一系列标签库进行页面元素的安全控制 方法安全 通过 AOP 模式实现安全代理 Web 安全与方法安全均可以使用表达式语言定义访问规则 5 5、配置、配置 SSSS 配置 Web.xml,应用安全过滤器 配置 Spring,验证与授权部分 在 web 页面中获取用户身份在 web 页面中应用安全标签库 实现方法级安全 6 6、配置、配置 web.xmlweb.xml 7 7、SpringSpring 配置文件中设置命名空间配置文件中设置命名空间 8 8、通过数据库验证用户身份、通过数据库验证用户身份 9 9、完善、完善 we
4、bweb 页面验证规则页面验证规则 1010、自定义验证配置、自定义验证配置 1111、本地化消息输出(国际化)、本地化消息输出(国际化)根据公司项目的开发要求和集合 spring security3.0 功能,公司将通过数 据库进行对用户身份验证和授权,系统将建立 5 个基础表进行对权利的管理。第一部分第一部分 数据库设计数据库设计1 1、表设计、表设计 表 1:用户表(pub_users) 序号序号字段字段类型类型含义含义备注备注 1User_IdVchar(32)用户 idPK 2user_accountVchar(30)登陆用户名 (登陆号) 3User_nameVchar(40)用户
5、姓名 4user_PasswordVchar(100)用户密码 5EnabledInt是否被禁用0 禁用 1 正常6isSysInt是否是超级用户0 非 1 是7user_DEScVchar(100)描述 说明:pub_users 表中的登录名和密码用来控制用户的登录。 表 2:权限表(pub_authorities) 序号序号字段字段类型类型含义含义备注备注 1authority_IdVchar(32)权限 idPK 2Authority_nameVchar(40)权限名称 3Authority_DEScVchar(100)权限描述 4EnabledInt是否被禁用0 禁用 1 正常5isS
6、ysInt是否是超级权限0 非 1 是 说明:pub_authorities 表中描述的是系统拥有哪些权限,如果要详细分类, 可以将一个 url 定义一个权限,那样就能对所有资源进行管理。 表 3:角色表(pub_roles) 序号序号字段字段类型类型含义含义备注备注 1role_IdVchar(32)角色 idPK 2role_nameVchar(100)角色名称 3role_DEScVchar(100)角色描述 4EnabledInt是否被禁用0 禁用 1 正常5isSysInt是否是超级权限0 非 1 是 说明:pub_roles 表中描述的是系统按用户分类或按照功能模块分类,将系统进行
7、整合归类管理。 表 4:资源表(pub_resources) 序号序号字段字段类型类型含义含义备注备注 1resource_IdVchar(32)资源 idPK 2resource_nameVchar(100)资源名称 3resource _typeVchar(40)资源类型url、method4priorityint资源优先权即排序 5resource _stringVchar(200)资源链接6resource_DEScVchar(100)资源描述 7EnabledInt是否被禁用0 禁用 1 正常8isSysInt是否是超级权限0 非 1 是 说明:pub_roles 表中描述的是系统需
8、要保护的资源及(url 或方法) 。 以上四个表是权限管理的基础表(用户表、权限表、角色表、资源表) 。表 5:用户角色连接表(pub_users_roles) 序号序号字段字段类型类型含义含义备注备注 1IdIndetityId 主键PK 2user_IdVchar(32)用户 id 3role_idVchar(32)角色 id 说明:用来管理用户和角色的关系。 表 6:角色权限连接表(pub_roles_authorities) 序号序号字段字段类型类型含义含义备注备注 1IdIndetityId 主键PK 2role _IdVchar(32)角色 id 3authority_IdVcha
9、r(32)权限 id 说明:用来管理角色和权限的关系。 表 7:权限资源连接表(pub_authorities_resources) 序号序号字段字段类型类型含义含义备注备注 1IdIndetityId 主键PK 2authority_IdVchar(32)权限 id 3resource_IdVchar(32)资源 id 说明:用来管理角色和权限的关系。 2 2、建表语句如下(数据库采用、建表语句如下(数据库采用 MSMS SQLSQL 20002000):):create table pub_users(user_id varchar(32),user_account varchar(30)
10、,user_name varchar(40),user_password varchar(100),user_desc varchar(100),enabled int,issys int); alter table pub_users add constraint pk_pub_users primary key(user_id);create table pub_authorities(authority_id varchar(32),authority_name varchar(40), authority_desc varchar(100),enabled int,issys int
11、); alter table pub_authorities add constraint pk_pub_authorities primary key(authority_id);create table pub_roles(role_id varchar(32),role_name varchar(40), role_desc varchar(100),enabled int,issys int ); alter table pub_roles add constraint pk_pub_roles primary key(role_id);create table pub_resourc
12、es(resource_id varchar(32),resource_name varchar(100), resource_desc varchar(100),resource_type varchar(40), resource_string varchar(200),priority int,enabled int,issys int ); alter table pub_resources add constraint pk_pub_resources primary key(resource_id);create table pub_users_roles(id numeric(1
13、2,0) IDENTITY NOT NULL, user_id varchar(32), role_id varchar(32),enabled int ); alter table pub_users_roles add constraint pk_pub_users_roles primary key(id); alter table pub_users_roles add constraint fk_users_roles_users foreign key(user_id) references pub_users(user_id);alter table pub_users_role
14、s add constraint fk_users_roles_roles foreign key(role_id) references pub_roles(role_id);create table pub_roles_authorities(id numeric(12,0) IDENTITY NOT NULL, role_id varchar(32),authority_id varchar(32), enabled int ); alter table pub_roles_authorities add constraint pk_pub_roles_authorities prima
15、ry key(id); alter table pub_roles_authorities add constraint fk_pub_roles_authorities_authorities foreign key(authority_id) references pub_authorities(authority_id); alter table pub_roles_authorities add constraint fk_pub_roles_authorities_roles foreign key(role_id) references pub_roles(role_id);cre
16、ate table pub_authorities_resources(id numeric(12,0) IDENTITY NOT NULL, authority_id varchar(32), resource_id varchar(32),enabled int ); alter table pub_authorities_resources add constraint pk_pub_authorities_resources primary key(id); alter table pub_authorities_resources add constraint fk_pub_authorities_resources_authorities foreign key(authority_id) references pub_authorities(authority_id); alter table pub_authorities_resources add constraint fk_pub_au