String Encryptor custom Bean not found with name ‘jasyptStringEncryptor‘...

文章讲述了在SpringBoot2.6.13项目中集成jasypt-spring-boot-starter3.0.5和apollo-client1.6.0时遇到的加密问题,自定义加密器bean未找到。问题源于Apollo与jasypt版本冲突,通过调整依赖为jasypt-spring-boot并手动添加启用注解解决,同时配置了加密算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目采用

spring boot 2.6.13

jasypt-spring-boot-starter 3.0.5

apollo-client 1.6.0

自定义jasyptStringEncryptor,服务器上启动死活报找不到bean jasyptStringEncryptor,采用默认的,密文配置项自然解密失败导致服务无法启动。

经过一系列排查是因为apollo和jasypt冲突,导致自定义加解密方法失效的问题,查询配置多个版本验证也无法解决,最终使用以下方式解决。

pom依赖将jasypt-spring-boot-starter 改成jasypt-spring-boot

<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot</artifactId>
    <version>3.0.5</version>
</dependency>

并且在自定义解密上手动添加jasypt启用注解

@EnableEncryptableProperties

配置文件

########################## 配置加密算法 ##################
jasypt:
  encryptor:
    iv-generator-classname: org.jasypt.iv.NoIvGenerator
    password: 你的密钥
19:22:33.020 [main] INFO c.u.j.e.DefaultLazyEncryptor - [lambda$new$2,37] - String Encryptor custom Bean not found with name 'jasyptStringEncryptor'. Initializing Default String Encryptor 19:22:33.030 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.algorithm, using default value: PBEWITHHMACSHA512ANDAES_256 19:22:33.031 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.key-obtention-iterations, using default value: 1000 19:22:33.032 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.pool-size, using default value: 1 19:22:33.032 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.provider-name, using default value: null 19:22:33.032 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.provider-class-name, using default value: null 19:22:33.032 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.salt-generator-classname, using default value: org.jasypt.salt.RandomSaltGenerator 19:22:33.033 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.iv-generator-classname, using default value: org.jasypt.iv.RandomIvGenerator 19:22:33.034 [main] INFO c.u.j.c.StringEncryptorBuilder - [get,102] - Encryptor config not found for property jasypt.encryptor.string-output-type, using default value: base64 19:22:33.150 [main] ERROR o.s.b.SpringApplication - [reportFailure,830] - Application run failed com.ulisesbocchio.jasyptspringboot.exception.DecryptionException: Unable to decrypt property: ENC(encrypted-value) resolved to: ENC(encrypted-value). Decryption of Properties failed, make sure encryption/decryption passwords match at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:46) at java.util.Optional.map(Optional.java:215) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.resolvePropertyValue(DefaultPropertyResolver.java:40) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultLazyPropertyResolver.resolvePropertyValue(DefaultLazyPropertyResolver.java:50) at com.ulisesbocchio.jasyptspringboot.EncryptablePropertySource.getProperty(EncryptablePropertySource.java:28) at com.ulisesbocchio.jasyptspringboot.caching.CachingDelegateEncryptablePropertySource.getProperty(CachingDelegateEncryptablePropertySource.java:44) at com.ulisesbocchio.jasyptspringboot.wrapper.EncryptableMapPropertySourceWrapper.getProperty(EncryptableMapPropertySourceWrapper.java:29) at org.springframework.cloud.bootstrap.encrypt.AbstractEnvironmentDecrypt.merge(AbstractEnvironmentDecrypt.java:103) at org.springframework.cloud.bootstrap.encrypt.AbstractEnvironmentDecrypt.merge(AbstractEnvironmentDecrypt.java:81) at org.springframework.cloud.bootstrap.encrypt.AbstractEnvironmentDecrypt.decrypt(AbstractEnvironmentDecrypt.java:69) at org.springframework.cloud.bootstrap.encrypt.EnvironmentDecryptApplicationInitializer.initialize(EnvironmentDecryptApplicationInitializer.java:95) at org.springframework.cloud.bootstrap.BootstrapApplicationListener$DelegatingEnvironmentDecryptApplicationInitializer.initialize(BootstrapApplicationListener.java:409) at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:613) at org.springframework.boot.SpringApplication.prepareContext(SpringApplication.java:381) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1312) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1301) at com.ruoyi.customApi.OuchnCustomApiApplication.main(OuchnCustomApiApplication.java:33) Caused by: org.jasypt.exceptions.EncryptionOperationNotPossibleException: null at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1054) at org.jasypt.encryption.pbe.StandardPBEStringEncryptor.decrypt(StandardPBEStringEncryptor.java:738) at org.jasypt.encryption.pbe.PooledPBEStringEncryptor.decrypt(PooledPBEStringEncryptor.java:511) at com.ulisesbocchio.jasyptspringboot.encryptor.DefaultLazyEncryptor.decrypt(DefaultLazyEncryptor.java:57) at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:44) ... 17 common frames omitted 19:22:33.152 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,108] - [HttpClientBeanHolder] Start destroying common HttpClient 19:22:33.152 [Thread-4] WARN c.a.n.c.h.HttpClientBeanHolder - [shutdown,114] - [HttpClientBeanHolder] Destruction of the end
07-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值