文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
5.4 实战
首先创建一个普通的 Spring Boot 工程,并引入 spring-boot-starter-security 依赖。
创建一个测试接口/hello,代码如下:
@RestController public class HelloController { @GetMapping("/hello") public String hello() { return "hello"; } }
为了测试方便,我们首先在单元测试中执行如下代码,生成一段加密字符串(读者可以多次执行该方法,会发现相同的明文每次生成的密文都不相同,这也是 BCryptPasswordEncoder 的便捷之处):
@Test void contextLoads() { BCryptPasswordEncoder encoder = new BCryptPasswordEncoder(); System.out.println(encoder.encode("123")); }
接下来自定义 SecurityConfig 类:
(1)首先我们将一个 BCryptPasswordEncoder 实例注册到 Spring 容器中,这将代替默认的 DelegatingPasswordEncoder。
(2)在定义用户时,设置的密码字符串就是前面单元测试方法执行生成的加密字符串。
配置完成后,启动项目。项目启动成功后,我们就可以使用 javaboy/123 进行登录了。
另一方面,由于默认使用的是 DelegatingPasswordEncoder,所以也可以不配置 PasswordEncoder 实例,只在密码前加上前缀:
如果我们不提供 PasswordEncoder 实例的话,默认使用的就是 DelegatingPasswordEncoder,所以需要给加密字符串加上前缀{bcrypt},同时再添加一个新用户,新用户的密码是{noop}123,这个表示密码明文存储,密码就是 123。
配置完成后,再次重启项目,此时我们就可以使用 javaboy/123 和江南一点雨/123 两个用户进行登录了。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论