这篇主要的内容是:
自定义用户表和权限表
也是解决第三篇留下的问题,这个解决方案是在这个大哥的博客看到的http://downpour.iteye.com/blog/319965
下面就是我自己做的例子:
准备工作:
1.在数据库中 自定义我们的用户表 和 权限表.
-- 用户表 create table tb_users( id number primary key not null, c_username nvarchar2(50) not null, c_password nvarchar2(50) not null, c_enabled char(1) not null ); --权限表 create table tb_role( id number primary key not null, c_authority nvarchar2(50) not null ); --用户权限中间表 create table tb_user_role( id number primary key not null, c_user_id number not null, c_role_id number not null ); --添加相应的外键引用 和 索引 alter table tb_user_role add constraint fk_user_id foreign key (c_user_id) references tb_users(id); alter table tb_user_role add constraint fk_role_id foreign key(c_role_id) references tb_role(id); alter table tb_users add constraint uq_username unique(c_username); create unique index ix_user_role on tb_user_role (c_user_id,c_role_id); --插入测试数据. insert into tb_users values(1,'user','ee11cbb19052e40b07aac0ca060c23ee','1'); insert into tb_users values(2,'admin','21232f297a57a5a743894a0e4a801fc3','1'); insert into tb_users values(3,'zyk','a90157d9f9a8d683152ca521cf1ecfac','1'); select * from users insert into tb_role values(1,'ROLE_ADMIN'); insert into tb_role values(2,'ROLE_USER'); select * from tb_role insert into tb_user_role values(1,1,2); insert into tb_user_role values(2,2,1); insert into tb_user_role values(3,3,1); insert into tb_user_role values(4,3,2); select * from tb_user_role
上面的用户名 和 密码 都是一样的 例如用户名 user 对应的 密码是 user 经过MD5 处理出来后的字串
是ee11cbb19052e40b07aac0ca060c23ee 保存在数据库 出于安全性的考虑.
2.配置applicationCotext.xml
<!--配置认证管理器 --> <security:authentication-manager> <security:authentication-provider> <security:password-encoder hash="md5" /> <security:jdbc-user-service data-source-ref="dataSource" users-by-username-query="select u.c_username username,u.c_password password,u.c_enabled enabled from tb_users u where u.c_username=? " authorities-by-username-query="select u.c_username username,r.c_authority authority from tb_users u , tb_role r ,tb_user_role ur where u.id=ur.c_user_id and r.id=ur.c_role_id and u.c_username=?" /> <!-- <security:user-service> --> <!-- <security:user name="user" password="user" --> <!-- authorities="ROLE_USER" /> --> <!-- </security:user-service> --> </security:authentication-provider> </security:authentication-manager>
到此 使用 用户名 zyk 密码 zyk 进行登录成功 .测试Ok.
通过添加users-by-username-query 和authorities-by-username-query 属性,我们可
以使用你自己的SQL 覆盖默认的SQL 语句。这样我们就可以指定查询的是我们自己定义的表了
但是 我们必须确保我们的SQL 语句返回的列与Spring Security 所期待的一样
很显然的是 用户表 需要的 字段是 username , password,enabled .
权限表 则是 username ,authority
共同的是 他们都需要 username 作为where子句的限制条件.
相关推荐
2025最新全国水利安全生产知识竞赛题库(含答案).docx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
因为文件过大所以使用bz2进行了2次压缩,请解压成tar包后在上传到服务器
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
iostat打印解析画图工具
1、文件内容:fence-agents-compute-4.2.1-41.el7_9.6.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/fence-agents-compute-4.2.1-41.el7_9.6.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
PDF格式,229页,包括有环保,新能源,木工,包装等行业的应用。适用于电气自动化行业。
1、文件内容:dropwatch-1.4-9.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/dropwatch-1.4-9.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
1、文件内容:fence-agents-emerson-4.2.1-41.el7_9.6.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/fence-agents-emerson-4.2.1-41.el7_9.6.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
航空发动机磨粒荷电特性研究.pdf
第十一届蓝桥杯大赛个人赛校内选拔(软件类)真题全面考察了参赛选手的编程与算法能力,涵盖多个热门编程语言,为选手提供了展现自身实力的舞台。 考察范围与方向 真题在编程语言上聚焦于 C/C++、Java、Python 等主流语言。考察内容广泛,既有基础的语法运用,也涉及复杂的数据结构和算法。数据结构方面,对数组、链表、栈、队列、哈希表等的使用有不同程度的考察;算法上,动态规划、贪心算法、搜索算法等经典算法是考察重点。 题型示例与特点 在具体题型上,有数值计算类题目,例如给定条件计算特定数值,要求选手有较强的逻辑思维和数学运算能力;字符串处理类题目,如字符串匹配、替换等,考验选手对字符串操作函数的熟悉程度;还有图论与搜索类题目,像最短路径问题,需要选手掌握相应的搜索算法。 考察目的与意义 这次校内选拔真题旨在筛选出编程能力强、算法思维敏捷的选手,为后续的正式比赛储备人才。通过解答这些真题,选手能发现自身知识短板,明确学习方向。对于学校而言,能了解学生的编程水平,为教学改进提供参考。同时,这也为学生提供了与同龄人交流切磋的机会,激发他们学习编程的热情,提升解决实际问题的能力。
一种采用耦合电感的开关电路分析.pdf
rancher-active-proxy
RSSIIndoorLocation-master
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1、文件内容:exchange-bmc-os-info-1.8.18-11.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/exchange-bmc-os-info-1.8.18-11.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:Tomcat(建议用 7.x 或者 8.x 版本),maven 数据库工具:navicat
1、文件内容:docbook-style-xsl-1.78.1-3.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/docbook-style-xsl-1.78.1-3.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装