相关文章推荐
才高八斗的松球  ·  .NET :在Visual ...·  1 年前    · 
坏坏的小熊猫  ·  Express.js - ...·  1 年前    · 

标题jasypt-spring-boot-starter跟nacos热加载冲突

用jasypt-spring-boot-starter3.0.2后部署到生产环境启动会出现下面情况,当版本超过 2.0.0 就无法刷新,具体什么原因还未找到,更换版本未2.0.0时就解决了

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

org.jasypt.exceptions.EncryptionOperationNotPossibleException: null
at org.jasypt.encryption.pbe.StandardPBEByteEncryptor.decrypt(StandardPBEByteEncryptor.java:1165)
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:115)
at com.ulisesbocchio.jasyptspringboot.resolver.DefaultPropertyResolver.lambda$resolvePropertyValue$0(DefaultPropertyResolver.java:44)
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:20)
at com.ulisesbocchio.jasyptspringboot.caching.CachingDelegateEncryptablePropertySource.getProperty(CachingDelegateEncryptablePropertySource.java:38)
at com.ulisesbocchio.jasyptspringboot.wrapper.EncryptableMapPropertySourceWrapper.getProperty(EncryptableMapPropertySourceWrapper.java:31)
at org.springframework.cloud.context.refresh.ContextRefresher.extract(ContextRefresher.java:234)
at org.springframework.cloud.context.refresh.ContextRefresher.extract(ContextRefresher.java:210)
at org.springframework.cloud.context.refresh.ContextRefresher.refreshEnvironment(ContextRefresher.java:74)
at org.springframework.cloud.context.refresh.ContextRefresher.refresh(ContextRefresher.java:68)
at org.springframework.cloud.endpoint.event.RefreshEventListener.handle(RefreshEventListener.java:50)
at org.springframework.cloud.endpoint.event.RefreshEventListener.onApplicationEvent(RefreshEventListener.java:39)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359)
at org.springframework.cloud.alibaba.nacos.refresh.NacosContextRefresher$1.receiveConfigInfo(NacosContextRefresher.java:125)
at com.alibaba.nacos.client.config.impl.CacheData 1.run(CacheData.java:188) at com.alibaba.nacos.client.config.impl.CacheData.safeNotifyListener(CacheData.java:209) at com.alibaba.nacos.client.config.impl.CacheData.checkListenerMd5(CacheData.java:160) at com.alibaba.nacos.client.config.impl.ClientWorker 1.run(CacheData.java:188)atcom.alibaba.nacos.client.config.impl.CacheData.safeNotifyListener(CacheData.java:209)atcom.alibaba.nacos.client.config.impl.CacheData.checkListenerMd5(CacheData.java:160)atcom.alibaba.nacos.client.config.impl.ClientWorkerLongPollingRunnable.run(ClientWorker.java:505)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

标题jasypt-spring-boot-starter跟nacos热加载冲突用jasypt-spring-boot-starter3.0.2后部署到生产环境启动会出现下面情况,当版本超过 2.0.0 就无法刷新,具体什么原因还未找到,更换版本未2.0.0时就解决了&lt;dependency&gt; &lt;groupId&gt;com.github.ulisesbocchio&lt;/groupId&gt; &lt;artifactId&gt;jasypt-spring-boot-star
赠送jar包:jasypt-spring-boot-3.0.4.jar; 赠送原API文档:jasypt-spring-boot-3.0.4-javadoc.jar; 赠送源代码:jasypt-spring-boot-3.0.4-sources.jar; 赠送Maven依赖信息文件:jasypt-spring-boot-3.0.4.pom; 包含翻译后的API文档:jasypt-spring-boot-3.0.4-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:com.github.ulisesbocchio:jasypt-spring-boot:3.0.4; 标签:github、ulisesbocchio、jasypt、spring、boot、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。 双语对照,边学技术、边学英语。
今天花了大半天时间,排除Nacos 为啥自动刷新不成功。按照 nacos 官方文档 实验能正常获取修改后的值。 官方样例:https://github.com/nacos-group/nacos-examples/tree/master/nacos-spring-boot-example/nacos-spring-boot-config-example 排查过程,花了不少时间。最终在排除 j.. springboot使用jasypt加密数据库用户密码时,在pom.xml中引入jasypt-spring-boot-starter时,与原有logback整合kafka日志部分冲突,启动报错如下: java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logba... 1.项目中关于数据库密码等信息想要进行加密处理,所以引入了jasypt-spring-boot-starter,版本3.0.3 2.后来项目接入了apollo的动态配置中心 3.此时发现@Value的值,不能进行动态刷新,当发布新配置时,apollo会进行更新操作,可是程序里仍旧是旧值 4.通过查看文件,可以看到本地拉下来的配置文件中,值已经同步成和apollo配置中心一样。 这块我理解的还不够透彻,大家可以看一下apollo的这个issues,等我研究明白了我再写,先看这
1.问题的出现 项目使用的是springboot2.1.6.RELEASE版本,使用了jasypt-spring-boot-starter 3.0.3来进行对配置文件进行加密操作,在压测过程中使用JProfiler发现 RefreshScopeRefreshedEventListener中的调用ClassUtils.forName占用不少的cpu jasypt-spring-boot-starter 3.0.3使用了jasypt的CachingConfiguration用于做配置...
赠送jar包:jasypt-spring-boot-3.0.4.jar; 赠送原API文档:jasypt-spring-boot-3.0.4-javadoc.jar; 赠送源代码:jasypt-spring-boot-3.0.4-sources.jar; 赠送Maven依赖信息文件:jasypt-spring-boot-3.0.4.pom; 包含翻译后的API文档:jasypt-spring-boot-3.0.4-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.github.ulisesbocchio:jasypt-spring-boot:3.0.4; 标签:github、ulisesbocchio、jasypt、spring、boot、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
一、Nacos的动态配置 nacos 服务端保存了配置信息,客户端连接到服务端之后,根据 dataID、group及tanant(就是Namesapce)可以获取到具体的配置信息,当服务端的配置发生变更时,客户端会通过长轮询的HTTP长连接获取到变更通知,然后再由客户端主动去获取变更后的配置信息。 二、Nacos回调机制 1、Nacos 服务端创建了相关的配置项(创建 ConfigService并实例化 ConfigService); 2、客户端添加 Listener进行监听: 客户端通过在Cli
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.13.RELEASE</version> </dependency> <dependency> <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> 2. 在 application.properties 文件中配置加密参数,如下: jasypt.encryptor.password=yourPassword jasypt.encryptor.algorithm=PBEWithMD5AndDES 其中,yourPassword 为你自己设置的密码,algorithm 为加密算法,这里使用 PBEWithMD5AndDES 算法。 3. 在需要加密的字段上使用 @Value 注解,并在属性值前添加 ENC() 前缀,如下: @Value("${my.property}") private String myProperty; 其中,my.property 即为需要加密的字段,在属性值前添加 ENC() 前缀,如下: my.property=ENC(encryptedValue) 其中,encryptedValue 为加密后的值。 4. 在启动类上添加注解 @EnableEncryptableProperties,如下: @SpringBootApplication @EnableEncryptableProperties public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); 5. 运行程序,即可使用 jasypt-spring-boot-starter 进行加解密。 注意,以上步骤仅做参考,具体使用方法需根据自己的实际情况进行调整。