项目一众筹网08_03_SpringSecurity数据库登录-思路、子类和父类之间的构造器的关系

系列文章目录

24-目标4-数据库登录-思路

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
邮箱那些怎么办
在这里插入图片描述
邮箱那些怎么办,所以要优化
在这里插入图片描述
可能有点不好理解,我们下面把它拆解,一步一步来做

25-目标4-数据库登录-查询角色和权限信息

根据admin用户id去查角色,怎么写
自己动手在数据里面写一下
特别注意是三张表的关联查询,而不是我们以为的两张表,自己动手写一下就明白了

在这里插入图片描述
在这里插入图片描述
其实我们以前做过,可以根据管理员用户的id 查询到已分配的角色
在这里插入图片描述
我们可以直接从这里面去遍历取到角色
在这里插入图片描述
第二步就是 根据角色,怎么去查到权限
在这里插入图片描述
在这里插入图片描述
加上这样一个方法,然后去实现
在这里插入图片描述
结合注释我们看一下,即:
在这里插入图片描述
关键还是怎么去写sql
在这里插入图片描述
在这里插入图片描述
然后就是写sql 了

在这里插入图片描述
注意最开始我们前面那个sql是 根据用户 id 查询出已分配的 角色
这里的是第二步了
要根据用户 id 查询出所有的权限
三个表都有关系
可以用左右连接,也可以用子查询的方式
这里我们用左右连接
在这里插入图片描述
在这里插入图片描述
特别要注意,这里只是查权限,就像下面这样
在这里插入图片描述
假如有空值怎么处理,因为不处理的话SpringSecurity会报错
在这里插入图片描述
首先,我们找到为什么会出现这样的数据
其次想办法解决
在这里插入图片描述
解决办法:再加个条件,这样就不会有空值了
在这里插入图片描述
再严谨一点优化一下sql
在这里插入图片描述
放到代码里面去

26-目标4-数据库登录-创建SecurityAdmin

新建一个类,要去继承 User 注意这个User是SpringSecurity框架自带的一个权限相关的类,必须要去继承它
在这里插入图片描述
在这里插入图片描述
回忆 一下 子类 和 父类 之间 的 构造器的关系

子类和父类之间的构造器的关系,解决报错问题

解决一下,怎么才不报错
解决办法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
加上注释,完整代码如下
在这里插入图片描述

27-目标4-数据库登录-根据账号查询Admin

在这里插入图片描述
在这里插入图片描述
注意要实现这个 UserDetailsService ,这个UserDetailsService 也是SpringSecurity的内部框架
实现它就必须要实现它的方法
在这里插入图片描述
实现它就必须要实现它的方法 —— loadUserByUsername 如下
在这里插入图片描述
注意这里需要用到的快捷键是Ctrl+1 和 Ctrl+shift+O (导 包)
在这里插入图片描述
然后实现这个方法,他的实现类如下
在这里插入图片描述
在这里插入图片描述

28-目标4-数据库登录-完成UserDetailsService类

先把一些必要的方法创建好,到时候直接调用
根据管理员用户的id 查询出他所拥有的所有(已经分配好的角色的)权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CrowUserDetailsService:
在这里插入图片描述

29-目标4-数据库登录-使用UserDetailsService

用上这个类
在这里插入图片描述
然后就可以测试看看了
先看看用下面这个值能不能够登录
在这里插入图片描述
因为现在还没有 加入加密
直接是可以登录的,反而秘文倒是不认识了,这个要注意
在这里插入图片描述

附录

借助SpringSecurity提供的标签库可以做到显示欢迎信息,,后面说
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值