SringSecurity安全权限管理手册.docx
- 文档编号:17211938
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:26
- 大小:22.64KB
SringSecurity安全权限管理手册.docx
《SringSecurity安全权限管理手册.docx》由会员分享,可在线阅读,更多相关《SringSecurity安全权限管理手册.docx(26页珍藏版)》请在冰点文库上搜索。
SringSecurity安全权限管理手册
SpringSecurity安全权限管理手册
参考文献:
1、security权限管理手册。
2、spring权限管理手册
3、spring的相关资料。
本文档内容仅仅作为公司权限管理资料用,对于企业来说,权限管理将是系统中的非常重要的一个模块,权限的设计也是参考相关资料进行整理和补充。
系统将通过数据库进行管理用户权限。
权限管理搭建要的问题:
1、区分Authentication(验证)与Authorization(授权)
验证
这个用户是谁?
用户身份可靠吗?
授权
某用户A是否可以访问资源R
某用户A是否可以执行M操作
某用户A是否可以对资源R执行M操作
2、SS中的验证特点
支持多种验证方式
支持多种加密格式
支持组件的扩展和替换
可以本地化输出信息
3、SS中的授权特点
支持多种仲裁方式
支持组件的扩展和替换
支持对页面访问、方法访问、对象访问的授权。
4、SS核心安全实现
Web安全
通过配置ServletFilter激活SS中的过滤器链
实现Session一致性验证
实现免登陆验证(Remember-Me验证)
提供一系列标签库进行页面元素的安全控制
方法安全
通过AOP模式实现安全代理
Web安全与方法安全均可以使用表达式语言定义访问规则
5、配置SS
配置,应用安全过滤器
配置Spring,验证与授权部分
在web页面中获取用户身份
在web页面中应用安全标签库
实现方法级安全
6、配置
7、Spring配置文件中设置命名空间
8、通过数据库验证用户身份
9、完善web页面验证规则
10、自定义验证配置
11、本地化消息输出(国际化)
根据公司项目的开发要求和集合spring功能,公司将通过数据库进行对用户身份验证和授权,系统将建立5个基础表进行对权利的管理。
第一部分数据库设计
1、表设计
表1:
用户表(pub_users)
序号
字段
类型
含义
备注
1
User_Id
Vchar(32)
用户id
PK
2
user_account
Vchar(30)
登陆用户名(登陆号)
3
User_name
Vchar(40)
用户姓名
4
user_Password
Vchar(100)
用户密码
5
Enabled
Int
是否被禁用
0禁用1正常
6
isSys
Int
是否是超级用户
0非1是
7
user_DESc
Vchar(100)
描述
说明:
pub_users表中的登录名和密码用来控制用户的登录。
表2:
权限表(pub_authorities)
序号
字段
类型
含义
备注
1
authority_Id
Vchar(32)
权限id
PK
2
Authority_name
Vchar(40)
权限名称
3
Authority_DESc
Vchar(100)
权限描述
4
Enabled
Int
是否被禁用
0禁用1正常
5
isSys
Int
是否是超级权限
0非1是
说明:
pub_authorities表中描述的是系统拥有哪些权限,如果要详细分类,可以将一个url定义一个权限,那样就能对所有资源进行管理。
表3:
角色表(pub_roles)
序号
字段
类型
含义
备注
1
role_Id
Vchar(32)
角色id
PK
2
role_name
Vchar(100)
角色名称
3
role_DESc
Vchar(100)
角色描述
4
Enabled
Int
是否被禁用
0禁用1正常
5
isSys
Int
是否是超级权限
0非1是
说明:
pub_roles表中描述的是系统按用户分类或按照功能模块分类,将系统进行整合归类管理。
表4:
资源表(pub_resources)
序号
字段
类型
含义
备注
1
resource_Id
Vchar(32)
资源id
PK
2
resource_name
Vchar(100)
资源名称
3
resource_type
Vchar(40)
资源类型
url、method
4
priority
int
资源优先权
即排序
5
resource_string
Vchar(200)
资源链接
6
resource_DESc
Vchar(100)
资源描述
7
Enabled
Int
是否被禁用
0禁用1正常
8
isSys
Int
是否是超级权限
0非1是
说明:
pub_roles表中描述的是系统需要保护的资源及(url或方法)。
以上四个表是权限管理的基础表(用户表、权限表、角色表、资源表)。
表5:
用户角色连接表(pub_users_roles)
序号
字段
类型
含义
备注
1
Id
Indetity
Id主键
PK
2
user_Id
Vchar(32)
用户id
3
role_id
Vchar(32)
角色id
说明:
用来管理用户和角色的关系。
表6:
角色权限连接表(pub_roles_authorities)
序号
字段
类型
含义
备注
1
Id
Indetity
Id主键
PK
2
role_Id
Vchar(32)
角色id
3
authority_Id
Vchar(32)
权限id
说明:
用来管理角色和权限的关系。
表7:
权限资源连接表(pub_authorities_resources)
序号
字段
类型
含义
备注
1
Id
Indetity
Id主键
PK
2
authority_Id
Vchar(32)
权限id
3
resource_Id
Vchar(32)
资源id
说明:
用来管理角色和权限的关系。
2、建表语句如下(数据库采用MSSQL2000):
createtablepub_users(
user_idvarchar(32),
user_accountvarchar(30),
user_namevarchar(40),
user_passwordvarchar(100),
user_descvarchar(100),
enabledint,
issysint
);
altertablepub_usersaddconstraintpk_pub_usersprimarykey(user_id);
createtablepub_authorities(
authority_idvarchar(32),
authority_namevarchar(40),
authority_descvarchar(100),
enabledint,
issysint
);
altertablepub_authoritiesaddconstraintpk_pub_authoritiesprimarykey(authority_id);
createtablepub_roles(
role_idvarchar(32),
role_namevarchar(40),
role_descvarchar(100),
enabledint,
issysint
);
altertablepub_rolesaddconstraintpk_pub_rolesprimarykey(role_id);
createtablepub_resources(
resource_idvarchar(32),
resource_namevarchar(100),
resource_descvarchar(100),
resource_typevarchar(40),
resource_stringvarchar(200),
priorityint,
enabledint,
issysint
);
altertablepub_resourcesaddconstraintpk_pub_resourcesprimarykey(resource_id);
createtablepub_users_roles(
idnumeric(12,0)IDENTITYNOTNULL,
user_idvarchar(32),
role_idvarchar(32),
enabledint
);
altertablepub_users_rolesaddconstraintpk_pub_users_rolesprimarykey(id);
altertablepub_users_rolesaddconstraintfk_users_roles_usersforeignkey(user_id)referencespub_users(user_id);
altertablepub_users_rolesaddconstraintfk_users_roles_rolesforeignkey(role_id)referencespub_roles(role_id);
createtablepub_roles_authorities(
idnumeric(12,0)IDENTITYNOTNULL,
role_idvarchar(32),
authority_idvarchar(32),
enabledint
);
altertablepub_roles_authoritiesaddconstraintpk_pub_roles_authoritiesprimarykey(id);
altertablepub_roles_authoritiesaddconstraintfk_pub_roles_authorities_authoritiesforeignkey(authority_id)referencespub_authorities(authority_id);
altertablepub_roles_authoritiesaddconstraintfk_pub_roles_authorities_rolesforeignkey(role_id)referencespub_roles(role_id);
createtablepub_authorities_resources(
idnumeric(12,0)IDENTITYNOTNULL,
authority_idvarchar(32),
resource_idvarchar(32),
enabledint
);
altertablepub_authorities_resourcesaddconstraintpk_pub_authorities_resourcesprimarykey(id);
altertablepub_authorities_resourcesaddconstraintfk_pub_authorities_resources_authoritiesforeignkey(authority_id)referencespub_authorities(authority_id);
altertablepub_authorities_resourcesaddconstraintfk_pub_authorities_resources_resourcesforeignkey(resource_id)referencespub_resources(resource_id);
3、E-R图如下:
第二部分WEB数据库整合
提示:
相关代码请参考项目模块
1、将数据库表结构和Hibernate建立映射,本系统采用annotation进行对数据库进行零配置处理(请参考hibernate映射),如图。
2、建立权限的Dao层。
3、建立权限的Service层
4、配置
xmlversion=""encoding="UTF-8"?
>
xmlns: xsi="" xsi: schemaLocation=" "> --SpringApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的SpringContextLoader--> classpath*: /, classpath*: / --CharacterEncodingfilter--> --SpringSide'sHibernateOpenSessionInViewfilter--> --SpringSecurityfilter--> --Struts2filter,actionPackages--> --Spring的ApplicationContext载入--> --Spring刷新Introspector防止内存泄露--> --防止多人登陆,控制一个用户只能登录一次,不能在其他地方重新登录--> --session超时定义,单位为分钟--> --errorpage--> /WEB-INF/tlds/ /WEB-INF/tlds/ --loushangtld--> /WEB-INF/tlds/ /WEB-INF/tlds/ /WEB-INF/tlds/ /WEB-INF/tlds/ /WEB-INF/tlds/ /WEB-INF/tlds/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SringSecurity 安全 权限 管理 手册