hutool和spring security 依赖冲突解决 Caused by: java.lang.NoClassDefFoundError: Could not initialize class

一 项目背景

自身用到了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依赖冲突问题解决的办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值