From 7c22ba0a21480f578dfe187c5126f6246bf03bd2 Mon Sep 17 00:00:00 2001 From: human-user <68408844+human-user@users.noreply.github.com.> Date: Thu, 11 Jan 2024 16:43:15 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DBouncyCastleProvider=E5=AF=BC?= =?UTF-8?q?=E8=87=B4graalvm=E5=BA=94=E7=94=A8=E6=8A=A5=E9=94=99Unsupported?= =?UTF-8?q?FeatureError?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/hutool/crypto/ProviderFactory.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/ProviderFactory.java b/hutool-crypto/src/main/java/cn/hutool/crypto/ProviderFactory.java index ff1ab1a0d..201dd5f1b 100644 --- a/hutool-crypto/src/main/java/cn/hutool/crypto/ProviderFactory.java +++ b/hutool-crypto/src/main/java/cn/hutool/crypto/ProviderFactory.java @@ -1,6 +1,7 @@ package cn.hutool.crypto; import java.security.Provider; +import java.security.Security; /** * Provider对象生产工厂类 @@ -14,6 +15,9 @@ import java.security.Provider; */ public class ProviderFactory { + private ProviderFactory() { + } + /** * 创建Bouncy Castle 提供者
* 如果用户未引入bouncycastle库,则此方法抛出{@link NoClassDefFoundError} 异常 @@ -21,9 +25,12 @@ public class ProviderFactory { * @return {@link Provider} */ public static Provider createBouncyCastleProvider() { - final org.bouncycastle.jce.provider.BouncyCastleProvider provider = new org.bouncycastle.jce.provider.BouncyCastleProvider(); - // issue#2631@Github - SecureUtil.addProvider(provider); + Provider provider = Security.getProvider(org.bouncycastle.jce.provider.BouncyCastleProvider.PROVIDER_NAME); + if (provider == null) { + provider = new org.bouncycastle.jce.provider.BouncyCastleProvider(); + // issue#2631@Github + SecureUtil.addProvider(provider); + } return provider; } }