介绍
springsecurity数据库如何认证?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强> 1。加入依赖强>
& lt; dependency> & lt; groupId> com.alibaba & lt; artifactId> druid-spring-boot-starter & lt; version> 1.1.10 & lt;/dependency> & lt; dependency> & lt; groupId> mysql & lt; artifactId> mysql-connector-java & lt; scope> runtime & lt; version> 5.1.27 & lt;/dependency>
这里选定的<代码> mysql-connector-java> 代码连接版本是5.1.27,对应的<代码>应用程序。属性> 代码为:
spring.datasource.url=jdbc: mysql://localhost: 3306/yolo。意思 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.username=根 spring.datasource。密码=根
如果是8.0以上版本则<代码>应用程序。属性> 代码需要对于<代码> spring.datasource。url> 代码需要加入<代码> serverTimezone 代码>
spring.datasource.username=根 spring.datasource.password=根 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc: mysql://localhost: 3306/security& # 63; useUnicode=true& characterEncoding=UTF-8& serverTimezone=亚洲/上海
<强> 2。数据库脚本强>
设置FOREIGN_KEY_CHECKS=0; -- ---------------------------- ——表结构的作用 -- ---------------------------- 删除表如果存在“角色”; 创建表的作用( “id”int(11)不是零AUTO_INCREMENT, “名字”varchar(32)默认为空, ‘nameZh varchar(32)默认为空, 主键(“id”) )引擎=InnoDB AUTO_INCREMENT=4默认字符集=utf8; -- ---------------------------- ——记录的作用 -- ---------------------------- 插入“角色”值(& # 39;1 & # 39;& # 39;dba # 39;, & # 39;数据库管理员& # 39;); 插入“角色”值(& # 39;2 & # 39;& # 39;行政与# 39;,& # 39;系统管理员& # 39;); 插入“角色”值(& # 39;3 & # 39;& # 39;用户# 39;,& # 39;用户& # 39;); -- ---------------------------- ——用户表结构 -- ---------------------------- 删除表如果存在“用户”; 创建表“用户”( “id”int(11)不是零AUTO_INCREMENT, “用户名”varchar(32)默认为空, “密码”varchar(255)默认为空, “启用”非常小的整数(1)默认为空, “锁定”非常小的整数(1)默认为空, 主键(“id”) )引擎=InnoDB AUTO_INCREMENT=4默认字符集=utf8; -- ---------------------------- ——用户的记录 -- ---------------------------- 插入“用户”值(& # 39;1 & # 39;& # 39;根# 39;,& # 39;2 10美元RMuFXGQ5AtH4wOvkUqyvuecpqUSeoxZYqilXzbz50dceRsga.WYiq& # 39;美元,& # 39;1 & # 39;,& # 39;0 & # 39;); 插入“用户”值(& # 39;2 & # 39;& # 39;行政与# 39;,& # 39;2 10美元RMuFXGQ5AtH4wOvkUqyvuecpqUSeoxZYqilXzbz50dceRsga.WYiq& # 39;美元,& # 39;1 & # 39;,& # 39;0 & # 39;); 插入“用户”值(& # 39;3 & # 39;& # 39;唱# 39;,& # 39;2 10美元RMuFXGQ5AtH4wOvkUqyvuecpqUSeoxZYqilXzbz50dceRsga.WYiq& # 39;美元,& # 39;1 & # 39;,& # 39;0 & # 39;); -- ---------------------------- ——为user_role表结构 -- ---------------------------- 删除表如果存在“user_role”; 创建表“user_role”( “id”int(11)不是零AUTO_INCREMENT, “uid”int(11)默认为空, “摆脱”int(11)默认为空, 主键(“id”) )引擎=InnoDB AUTO_INCREMENT=5默认字符集=utf8; -- ---------------------------- ——记录user_role -- ---------------------------- 插入“user_role”值(& # 39;1 & # 39;& # 39;1 & # 39;,& # 39;1 & # 39;); 插入“user_role”值(& # 39;2 & # 39;& # 39;1 & # 39;,& # 39;2 & # 39;); 插入“user_role”值(& # 39;3 & # 39;& # 39;2 & # 39;,& # 39;2 & # 39;); 插入“user_role”值(& # 39;4 & # 39;& # 39;3 & # 39;,& # 39;3 & # 39;); 设置FOREIGN_KEY_CHECKS=1;
<强> 1。定义用户强>
<标记> >标记实体类用户需要实现UserDetails接口,因为每个人都可以定义用户对象,但是每个人定义的用户对象不一样,这就造成每个人设置的属性不一样,当系统需要判定用户的登录状态时,因为用户名和密码的名称设置的五花八门,造成无法确定调用哪个