【问题标题】:WARNING: Encoded password does not look like BCrypt警告:编码密码看起来不像 BCrypt
【发布时间】:2019-03-19 13:20:45
【问题描述】:

控制器类方法:

@RequestMapping(value = "/admin", method = RequestMethod.GET)
public String adminPage() {
    return "privatePage";

spring-security 配置:

<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>

错误:

您的登录尝试不成功,请重试。

原因:凭据错误。

感谢任何回应。

【问题讨论】:

  • 我非常怀疑您是否可以将 Java 代码指定为“密码”的值:password="passwordEncoder.encode(123456)"。我以前从未见过它。请改用password="$2a$10$dFJH9bHHz28xp0pF4dvVx./5EEPGYjdrAkJp8yzaC49aYOHT4FaIe"
  • password="passwordEncoder.encode(123456)",这是因为在给定password="123456"的时候。 “编码的密码看起来不像 BCrypt”,警告消息来了,所以我试图通过 PasswordEncode 方法进行密码编码。但为此也无法登录。
  • 密码="$2a$10$dFJH9bHHz28xp0pF4dvVx./5EEPGYjdrAkJp8yzaC49aYOHT4FaIe"。这样做也是同样的问题。这就像生成相当于 123456 的编码密码。
  • 我使用的是 Spring 5.0.0.RELEASE。如果我将通过基于注释的相同应用程序运行良好。
  • passwordEncoder.encode(123456) 是 Java 代码。它将与 Java 配置一起使用。但它几乎不能在非 Java 环境 XML 中工作。您能否更具体地了解“同样的问题”:您无法登录,您是否收到 *Encoded password does not look like BCrypt 错误,或两者兼而有之?

标签: java spring-security spring-oauth2


【解决方案1】:

解决方案

<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);

生成编码值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 2020-05-26
    • 2018-10-09
    • 2019-03-25
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 2021-12-12
    相关资源
    最近更新 更多