SringSecurity安全权限管理手册.docx

上传人:b****0 文档编号:17211938 上传时间:2023-07-23 格式:DOCX 页数:26 大小:22.64KB
下载 相关 举报
SringSecurity安全权限管理手册.docx_第1页
第1页 / 共26页
SringSecurity安全权限管理手册.docx_第2页
第2页 / 共26页
SringSecurity安全权限管理手册.docx_第3页
第3页 / 共26页
SringSecurity安全权限管理手册.docx_第4页
第4页 / 共26页
SringSecurity安全权限管理手册.docx_第5页
第5页 / 共26页
SringSecurity安全权限管理手册.docx_第6页
第6页 / 共26页
SringSecurity安全权限管理手册.docx_第7页
第7页 / 共26页
SringSecurity安全权限管理手册.docx_第8页
第8页 / 共26页
SringSecurity安全权限管理手册.docx_第9页
第9页 / 共26页
SringSecurity安全权限管理手册.docx_第10页
第10页 / 共26页
SringSecurity安全权限管理手册.docx_第11页
第11页 / 共26页
SringSecurity安全权限管理手册.docx_第12页
第12页 / 共26页
SringSecurity安全权限管理手册.docx_第13页
第13页 / 共26页
SringSecurity安全权限管理手册.docx_第14页
第14页 / 共26页
SringSecurity安全权限管理手册.docx_第15页
第15页 / 共26页
SringSecurity安全权限管理手册.docx_第16页
第16页 / 共26页
SringSecurity安全权限管理手册.docx_第17页
第17页 / 共26页
SringSecurity安全权限管理手册.docx_第18页
第18页 / 共26页
SringSecurity安全权限管理手册.docx_第19页
第19页 / 共26页
SringSecurity安全权限管理手册.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SringSecurity安全权限管理手册.docx

《SringSecurity安全权限管理手册.docx》由会员分享,可在线阅读,更多相关《SringSecurity安全权限管理手册.docx(26页珍藏版)》请在冰点文库上搜索。

SringSecurity安全权限管理手册.docx

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="

">

rstframe

webAppRootKey

log4jConfigLocation

classpath:

log4jRefreshInterval

60000

--SpringApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔

此参数用于后面的SpringContextLoader-->

contextConfigLocation

classpath*:

/,

classpath*:

/

--CharacterEncodingfilter-->

encodingFilter

encoding

UTF-8

encodingFilter

/*

--SpringSide'sHibernateOpenSessionInViewfilter-->

hibernateOpenSessionInViewFilter

excludeSuffixs

js,css,jpg,gif

hibernateOpenSessionInViewFilter

/*

--SpringSecurityfilter-->

springSecurityFilterChain

springSecurityFilterChain

/*

--Struts2filter,actionPackages-->

struts2Filter

struts2Filter

/*

--Spring的ApplicationContext载入-->

--Spring刷新Introspector防止内存泄露-->

--防止多人登陆,控制一个用户只能登录一次,不能在其他地方重新登录-->

--session超时定义,单位为分钟-->

20

--errorpage-->

/common/

500

/common/

404

/common/

403

/common/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

--loushangtld-->

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

/WEB-INF/tlds/

/WEB-INF/

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2