java - 警告:编码密码看起来不像 BCrypt
问题描述
控制器类方法:
@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String adminPage() {
return "privatePage";
弹簧安全配置:
<http auto-config="true">
<intercept-url pattern="/admin"
access="hasRole('ROLE_ADMIN')" />
</http>
<authentication-manager>
<authentication-provider>
<password-encoder ref="bCryptPasswordEncoder" />
<user-service>
<user name="admin" password="passwordEncoder.encode(123456)"
authorities="hasRole(ROLE_ADMIN,ROLE_USER)" />
</user-service>
</authentication-provider>
</authentication-manager>
<beans:bean id="bCryptPasswordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
<beans:constructor-arg value="10" />
</beans:bean>
错误:
您的登录尝试不成功,请重试。
原因:凭据错误。
感谢任何回应。
解决方案
解决方案
<user-service>
<user name="admin" password="$2a$10$hbxecwitQQ.dDT4JOFzQAulNySFwEpaFLw38jda6Td.Y/cOiRzDFu"
authorities="ROLE_ADMIN" />
</user-service>
评论
admin@123 相当于 $2a$10$hbxecwitQQ.dDT4JOFzQAulNySFwEpaFLw38jda6Td.Y/cOiRzDFu 这个编码密码。因此,在密码文本中输入 admin@123。
用于转换编码值的类
BCryptPasswordEncoder b=new BCryptPasswordEncoder();
String str=b.encode("admin@123");
System.out.println("Encoding "+str);
生成编码值。
推荐阅读
- r - 当我尝试处理栅格时,为什么我的计算机内存会迅速消失?
- assembly - 如何在 sse2 上模拟 pcmpgtq?
- javascript - PHP循环数组,jquery打印每个id值
- node.js - 使用 Jest 进行纱线测试失败:无法从“Form.js”中找到模块“react”
- arrays - 如何在 C 中将一个数组复制到另一个数组并获得两个单独的数组?
- flutter - 使用 Riverpod 在 Flutter 中实现拉动刷新
- java - JsonParseException:意外字符('{'(代码 123)):期待双引号开始
- c - 将字符串格式化为特定格式
- flutter - VS Code自定义tasks.json中使用args的问题
- reactjs - 如何动态呈现带有条件的输入字段?