0
点赞
收藏
分享

微信扫一扫

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


系列文章目录

文章目录

  • ​​系列文章目录​​
  • ​​24-目标4-数据库登录-思路​​
  • ​​25-目标4-数据库登录-查询角色和权限信息​​
  • ​​26-目标4-数据库登录-创建SecurityAdmin​​
  • ​​子类和父类之间的构造器的关系,解决报错问题​​
  • ​​27-目标4-数据库登录-根据账号查询Admin​​
  • ​​28-目标4-数据库登录-完成UserDetailsService类​​
  • ​​29-目标4-数据库登录-使用UserDetailsService​​
  • ​​附录​​

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

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


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

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


邮箱那些怎么办

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


邮箱那些怎么办,所以要优化

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


可能有点不好理解,我们下面把它拆解,一步一步来做

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

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

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


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


其实我们以前做过,可以根据管理员用户的id 查询到已分配的角色

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


我们可以直接从这里面去遍历取到角色

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


第二步就是 根据角色,怎么去查到权限

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


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


加上这样一个方法,然后去实现

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


结合注释我们看一下,即:

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


关键还是怎么去写sql

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


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


然后就是写sql 了

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


注意最开始我们前面那个sql是 根据用户 id 查询出已分配的 角色

这里的是第二步了

要根据用户 id 查询出所有的权限

三个表都有关系

可以用左右连接,也可以用子查询的方式

这里我们用左右连接

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


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


特别要注意,这里只是查权限,就像下面这样

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


假如有空值怎么处理,因为不处理的话SpringSecurity会报错

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


首先,我们找到为什么会出现这样的数据

其次想办法解决

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


解决办法:再加个条件,这样就不会有空值了

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


再严谨一点优化一下sql

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


放到代码里面去

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

新建一个类,要去继承 User 注意这个User是SpringSecurity框架自带的一个权限相关的类,必须要去继承它

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


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


回忆 一下 子类 和 父类 之间 的 构造器的关系

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

解决一下,怎么才不报错

解决办法

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


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


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


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


加上注释,完整代码如下

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

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

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


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


注意要实现这个 UserDetailsService ,这个UserDetailsService 也是SpringSecurity的内部框架

实现它就必须要实现它的方法

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


实现它就必须要实现它的方法 —— loadUserByUsername 如下

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


注意这里需要用到的快捷键是Ctrl+1 和 Ctrl+shift+O (导 包)

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


然后实现这个方法,他的实现类如下

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


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

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

先把一些必要的方法创建好,到时候直接调用

根据管理员用户的id 查询出他所拥有的所有(已经分配好的角色的)权限

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


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


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

CrowUserDetailsService:

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

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

用上这个类

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


然后就可以测试看看了

先看看用下面这个值能不能够登录

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


因为现在还没有 加入加密

直接是可以登录的,反而秘文倒是不认识了,这个要注意

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

附录

借助SpringSecurity提供的标签库可以做到显示欢迎信息,,后面说

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


举报

相关推荐

父类和子类之间方法调用的问题

0 条评论