一 项目背景
自身用到了hutool工具包 后续有接口需要对外开放访问 要加oauth2权限校验
于是就加了一下几个依赖
<!-- OAuth2 相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.3.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.1.1.RELEASE</version>
</dependency>
<!-- JWT 支持 -->
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>${nimbus-jose-jwt.version}</version>
</dependency>
备注: hutool 版本为 5.6.7
然后项目中之前用hutool 封装的
MD5.create().digestHex();
就开始有问题了 项目启动不会报错 但是真正用到这一块的代码的时候
Caused by: java.lang.NoClassDefFoundError: Could not initialize class cn.hutool.crypto.GlobalBouncyCastleProvider
at cn.hutool.crypto.SecureUtil.createMessageDigest(SecureUtil.java:1043)
at cn.hutool.crypto.digest.Digester.init(Digester.java:92)
at cn.hutool.crypto.digest.Digester.<init>(Digester.java:78)
at cn.hutool.crypto.digest.Digester.<init>(Digester.java:56)
at cn.hutool.crypto.digest.Digester.<init>(Digester.java:47)
at cn.hutool.crypto.digest.MD5.<init>(MD5.java:30)
at cn.hutool.crypto.digest.MD5.create(MD5.java:23)
后续经过排查 发现是hutool和新加的oauth2的依赖冲突了
修改后:
<!-- OAuth2 相关依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.3.8.RELEASE</version>
<exclusions>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.1.1.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>bcpkix-jdk15on</artifactId>
<groupId>org.bouncycastle</groupId>
</exclusion>
</exclusions>
</dependency>
<!-- JWT 支持 -->
<dependency>
<groupId>com.nimbusds</groupId>
<artifactId>nimbus-jose-jwt</artifactId>
<version>${nimbus-jose-jwt.version}</version>
</dependency>
将报错的 bouncycastle 从 新加的依赖中排查掉后 问题修复
项目中有maven-help 插件的 可以直接在 pom文件的左下角找到

然后右键选中 exclude 就行了
以上记录 hutool 和oauth2依赖冲突问题解决的办法
1600

被折叠的 条评论
为什么被折叠?



