Weblogic 12.1.3 中的 Bouncycastle PKCS5S2ParametersGenerator 错误
Bouncycastle PKCS5S2ParametersGenerator error in weblogic 12.1.3
我正在尝试将项目部署到 weblogic 服务器。但是我得到了这样的错误;
####<Nov 22, 2017 3:30:23 PM EET> <Error> <Deployer> <nbia-pc> <AdminServer> <[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1511357423637> <BEA-149265> <Failure occurred in the execution of deployment request with ID "456499572774374" for task "18". Error is: "weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>(Lorg/bouncycastle/crypto/Digest;)V"
weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>(Lorg/bouncycastle/crypto/Digest;)V
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:216)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:211)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24)
at weblogic.application.internal.BaseDeployment.next(BaseDeployment.java:729)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:48)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
为了 spring 安全,我习惯使用这个库,依赖版本是 1.58
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.58</version>
</dependency>
用过class就是那个。
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(jdbcTemplate.getDataSource()).passwordEncoder(new SCryptPasswordEncoder());
}
问题出在哪里?
- SCryptPasswordEncoder 使用 bouncyCastle,
https://docs.spring.io/autorepo/docs/spring-security/4.1.1.RELEASE/apidocs/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.html
- 你可以在pom看到使用的是哪个版本http://central.maven.org/maven2/org/springframework/security/spring-security-crypto/4.2.3.RELEASE/spring-security-crypto-4.2.3.RELEASE.pom
(链接是例子,我不知道你的 spring-security-crypto 版本)
我认为您应该使用与 spring-security-crypto 相同版本的 bouncy-castle,或者您可以尝试这样做(不确定是否可行):
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<scope>provided</scope>
</dependency>
bouncycastle/crypto/Digest class 从 bouncycastle 库中删除,所以我必须更改我的编码算法。
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.58</version>
</dependency>
我正在尝试将项目部署到 weblogic 服务器。但是我得到了这样的错误;
####<Nov 22, 2017 3:30:23 PM EET> <Error> <Deployer> <nbia-pc> <AdminServer> <[STANDBY] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1511357423637> <BEA-149265> <Failure occurred in the execution of deployment request with ID "456499572774374" for task "18". Error is: "weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>(Lorg/bouncycastle/crypto/Digest;)V"
weblogic.application.ModuleException: java.lang.NoSuchMethodError: org.bouncycastle.crypto.generators.PKCS5S2ParametersGenerator.<init>(Lorg/bouncycastle/crypto/Digest;)V
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:216)
at weblogic.application.internal.flow.ModuleStateDriver.next(ModuleStateDriver.java:211)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:73)
at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:24)
at weblogic.application.internal.BaseDeployment.next(BaseDeployment.java:729)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:48)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
为了 spring 安全,我习惯使用这个库,依赖版本是 1.58
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.58</version>
</dependency>
用过class就是那个。
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(jdbcTemplate.getDataSource()).passwordEncoder(new SCryptPasswordEncoder());
}
问题出在哪里?
- SCryptPasswordEncoder 使用 bouncyCastle, https://docs.spring.io/autorepo/docs/spring-security/4.1.1.RELEASE/apidocs/org/springframework/security/crypto/scrypt/SCryptPasswordEncoder.html
- 你可以在pom看到使用的是哪个版本http://central.maven.org/maven2/org/springframework/security/spring-security-crypto/4.2.3.RELEASE/spring-security-crypto-4.2.3.RELEASE.pom
(链接是例子,我不知道你的 spring-security-crypto 版本)
我认为您应该使用与 spring-security-crypto 相同版本的 bouncy-castle,或者您可以尝试这样做(不确定是否可行):
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<scope>provided</scope>
</dependency>
bouncycastle/crypto/Digest class 从 bouncycastle 库中删除,所以我必须更改我的编码算法。
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.58</version>
</dependency>