-------前提------当你所有的依赖都导入好了以后---------
---------------------------------认证(仅仅测试,使用你自己的账号密码)--------后面会总结---------------------
1.自己写一个serviceimpl(随便起名)
2.实现UserDetailsService(包名import org.springframework.security.core.userdetails.UserDetailsService;)
3.实现里面的loadUserByUsername方法,返回值是你自己写的类(在第四步)
3.1.在loadUserByUsername方法里面根据账号(这个方法上面的形参就是你的账号)查询出你的用户对象(等会第10步骤需要用)
4.创建一个实体类MyUserDetails(随便起名)
5.实现UserDetails这个接口
6.重写里面的所有方法
7.除了这三个方法getAuthorities,getPassword,getUsername,其余返回值是boolean的方法,全部修改成返回true
8.把你的用户类放到你上面写的那个实体类里,(prive---记得类上加注解@Date)
9.把getPassword,getUsername返回值改成你的真实账号密码
10.在第一步里面返回你第四步创建的这个类---return new MyUserDetails(第3.1步返回的对象);
11.接下来你就可以进行测试了,(注意默认情况下你在数据库存储的密码前面必须添加{noop},比如你的密码是123,你在数据库存储的时候就必须是{noop}123)---如果不想这样搞,也就是在生产环境中------请看第12-17步。
12.再写一个类SecurityConfig(随便起名)
13.继承WebSecurityConfigurerAdapter这个类
14.写一个方法,返回值是BCryptPasswordEncoder这个类,return new BCryptPasswordEncoder();就可以。
15.让SecurityConfig这个类被Spring管理(也就是在类上加注解@Configuration)
16.让这个方法被Spring管理(也就是在这个方法上加注解@Bean)
17.这个密码存储的时候你就不能写123或者{noop}123了,你需要用测试类生成一个,生成方法是请看18-19步
18.在测试类里面,先注入你的SecurityConfig(你第12步创建的那个类)
19.注入以后拿,(你第12步创建的那个类).(你第14步创建的那个方法).encode(这里面是你的密码原文),返回值就是加密过的密码,然后把加密后的密码存到数据库就行。