栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring Boot 2.0.0 + OAuth2

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot 2.0.0 + OAuth2

Spring Security 5使用现代化的密码存储,请参阅OAuth2
Autoconfig

如果您使用自己的授权服务器配置通过

ClientDetailsServiceConfigurer
如下所示的实例配置有效客户端列表,请注意,此处配置的密码受Spring
Security 5随附的现代化密码存储的约束。

要解决您的问题,请参阅Spring Security Reference:

故障排除

当存储的密码之一没有ID(如“密码存储格式”一节中所述)时,会发生以下错误。

java.lang.IllegalArgumentException: There is no PasswordEnprer mapped

for the id “null”
at
org.springframework.security.crypto.password.DelegatingPasswordEnprer$UnmappedIdPasswordEnprer.matches(DelegatingPasswordEnprer.java:233)
at
org.springframework.security.crypto.password.DelegatingPasswordEnprer.matches(DelegatingPasswordEnprer.java:196)

解决该错误的最简单方法是切换为显式提供

PasswordEnprer
密码进行编码的方式。解决此问题的最简单方法是弄清楚密码的当前存储方式,并明确提供正确的密码
PasswordEnprer
。如果您是从Spring
Security 4.2.x迁移的,则可以通过公开一个
NoOpPasswordEnprer
bean
恢复到以前的行为。例如,如果您使用的是Java配置,则可以创建如下所示的配置:

还原为

NoOpPasswordEnprer
不安全。您应该改为使用
DelegatingPasswordEnprer
来支持安全密码编码。

@Beanpublic static NoOpPasswordEnprer passwordEnprer() {    return NoOpPasswordEnprer.getInstance();}

如果您使用的是XML配置,则可以公开

PasswordEnprer
带有id的
passwordEnprer

<b:bean id="passwordEnprer"    

factory-method=”getInstance”/>

或者,您可以为所有密码加上正确的ID前缀,然后继续使用

DelegatingPasswordEnprer
。例如,如果您使用的是BCrypt,则可以从以下方式迁移密码:

$2a$10$dXJ3SW6G7P50lGmMkkmwe.20cQQubK3.HZWzG3YB1tlRy.fqvM/BG

{bcrypt}$2a$10$dXJ3SW6G7P50lGmMkkmwe.20cQQubK3.HZWzG3YB1tlRy.fqvM/BG


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/405468.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号