加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

spring security方法一 自定义数据库表结构

发布时间:2020-12-15 01:50:50 所属栏目:大数据 来源:网络整理
导读:Spring Security默认提供的表结构太过简单了,其实就算默认提供的表结构很复杂,也无法满足所有企业内部对用户信息和权限信息管理的要求。基本上每个企业内部都有一套自己的用户信息管理结构,同时也会有一套对应的权限信息体系,如何让Spring Security在这

Spring Security默认提供的表结构太过简单了,其实就算默认提供的表结构很复杂,也无法满足所有企业内部对用户信息和权限信息管理的要求。基本上每个企业内部都有一套自己的用户信息管理结构,同时也会有一套对应的权限信息体系,如何让Spring Security在这些已有的数据结构之上运行呢?

--50200 as identity(start with 1--<span style="color: #000000;"> 用户
create table user(
id bigint,username varchar(
50<span style="color: #000000;">),password varchar(
50<span style="color: #000000;">),status integer,descn varchar(
200<span style="color: #000000;">)
);
alter table user add constraint pk_user primary key(id);
alter table user alter column id bigint generated by
<span style="color: #0000ff;">default as identity(start with 1<span style="color: #000000;">);

--<span style="color: #000000;"> 用户角色连接表
create table user_role(
user_id bigint,role_id bigint
);
alter table user_role add constraint pk_user_role primary key(user_id,role_id);
alter table user_role add constraint fk_user_role_user foreign key(user_id) references user(id);
alter table user_role add constraint fk_user_role_role foreign key(role_id) references role(id);

上述共有三张表,其中user用户表,role角色表为保存用户权限数据的主表,user_role为关联表。user用户表,role角色表之间为多对多关系,就是说一个用户可以有多个角色。ER图如下所示:

数据库表关系

创建两个用户,admin和user。admin用户拥有“管理员”角色,user用户拥有“用户”角色。

insert into user(id,username,password,status,descn) values(1,'admin',1,'管理员'2,'user','用户'insert into role(id,name,descn) values(1,'ROLE_ADMIN','管理员角色'<span style="color: #000000;">);
insert into role(id,'ROLE_USER','用户角色'<span style="color: #000000;">);

insert into user_role(user_id,role_id) values(1,1<span style="color: #000000;">);
insert into user_role(user_id,2<span style="color: #000000;">);
insert into user_role(user_id,role_id) values(2,2);

现在我们要在这样的数据结构基础上使用Spring Security,Spring Security所需要的数据只是为了处理两种情况,一是判断登录用户是否合法,二是判断登陆的用户是否有权限访问受保护的系统资源。

我们所要做的工作就是在现有数据结构的基础上,为Spring Security提供这两种数据。

=?

===?"/>

将语句配置到xml中

-by-username-query="select username,status as enabled =? 2authorities-by-username-query="select u.username,r.name as authority ===?"/>

users-by-username-query为根据用户名查找用户,系统通过传入的用户名查询当前用户的登录名,密码和是否被禁用这一状态。

authorities-by-username-query为根据用户名查找权限,系统通过传入的用户名查询当前用户已被授予的所有权限。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读