首页 > 解决方案 > spring-boot-security 2.2.5 - java.lang.NoClassDefFoundError:org/bouncycastle/crypto/params/Argon2Parameters

问题描述

我正在使用 Spring Boot 安全版本 2.2.5.RELEASE,我正在使用 Argon2PasswordEncoder 作为我的密码编码器创建一个自定义密码编码器。

在此运行时,可以在 Argon2PasswordEncoder.java 中看到以下错误,我可以看到这两个导入丢失,

import org.bouncycastle.crypto.generators.Argon2BytesGenerator;
import org.bouncycastle.crypto.params.Argon2Parameters;

错误:

java.lang.NoClassDefFoundError: org/bouncycastle/crypto/params/Argon2Parameters$Builder
    at org.springframework.security.crypto.argon2.Argon2PasswordEncoder.encode(Argon2PasswordEncoder.java:78) ~[spring-security-core-5.2.2.RELEASE.jar:5.2.2.RELEASE]
    at com.custom.CustomPasswordEncoder.encode(CustomPasswordEncoder.java:11)

请建议我想做什么,我是否缺少一些依赖项或它的 Spring Boot 版本问题。还有如何克服。非常感谢。

标签: spring-bootspring-security

解决方案


我得到了这个问题。对于版本 2.2.5 springboot,我们需要显式添加 Argon2BytesGenerator 的依赖项,Argon2Parameters nt 发现问题,因为它不包含在此版本中。

<dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk15on</artifactId>
        <version>1.64</version>
</dependency>

推荐阅读