springboot使用jasypt加密数据库用户密码时,在pom.xml中引入jasypt-spring-boot-starter时,与原有logback整合kafka日志部分冲突,启动报错如下:
java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.spi.Interpreter@37:14 - RuntimeException in Action for tag [appender] org.apache.kafka.common.KafkaException: Failed to construct kafka producer
at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:169)
at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:82)
at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:117)
at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:292)
at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:265)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:228)
at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:201)
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.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:75)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:347)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:306)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at com.nuonuo.tax.bspt.BsptApplication.main(BsptApplication.java:16)
logback-spring.xml如下:
问题原因及解决:
jasypt-spring-boot-starter.jar与logback日志部分引入jar冲突。
虽然很多报文在使用jasypt加密时都是引用jasypt-spring-boot-starter.jar(可能会引入更多jar进来),可以使用下面:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>2.1.0</version>
</dependency>
具体详细介绍:
https://github.com/ulisesbocchio/jasypt-spring-boot
附加密步骤:
Spring Boot使用jasypt处理加密问题
springboot使用jasypt加密报错:java.lang.IllegalStateException: Logback configuration error detected
背景:springboot使用jasypt加密数据库用户密码时,在pom.xml中引入jasypt-spring-boot-starter时,与原有logback整合kafka日志部分冲突,启动报错如下:java.lang.IllegalStateException: Logback configuration error detected: ERROR in ch.qos.logba...
1
springboot
简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的 初始搭建以及开发过程。该框架
使用
了特定的方式来进行配置,从而使开发人员不 再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应 用开发领域(rapid application development)成为领导者。
Spring Boot 全新框架 作用: 简化spring应用初始搭建和开发过程
如何简化:开发人员
使用
springboot
只要基于特
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.13.RELEASE</version>
</dependency>
<dependency>
标题
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-star
1.项目中关于数据库密码等信息想要进行
加密
处理,所以引入了
jasypt
-spring-boot-starter,版本3.0.3
2.后来项目接入了apollo的动态配置中心
3.此时发现@Value的值,不能进行动态刷新,当发布新配置时,apollo会进行更新操作,可是程序里仍旧是旧值
4.通过查看文件,可以看到本地拉下来的配置文件中,值已经同步成和apollo配置中心一样。
这块我理解的还不够透彻,大家可以看一下apollo的这个issues,等我研究明白了我再写,先看这
Servlet.service() for servlet default threw exception
java
.
lan
g.
IllegalStateException
at org.apache.catalina.connector.ResponseFacade.send
Error
(ResponseFacade.
java
:407)
at org.apache.struts2.d
1.问题的出现
项目
使用
的是
springboot
2.1.6.RELEASE版本,
使用
了
jasypt
-spring-boot-starter 3.0.3来进行对配置文件进行
加密
操作,在压测过程中
使用
JProfiler发现
RefreshScopeRefresh
ed
EventListener中的调用ClassUtils.forName占用不少的cpu
jasypt
-spring-boot-starter 3.0.3
使用
了
jasypt
的Caching
Configuration
用于做配置...
### 回答1:
这个错误提示是说缺少了必要的
加密
配置属性
jasypt
.encryptor.password。这个属性是用来指定
加密
解密的密码的,如果没有设置或者设置不正确,就会导致
加密
解密失败。需要检查配置文件中是否正确设置了这个属性。
### 回答2:
requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password 是一个错误提示,通常出现在
使用
Jasypt
加密
框架时没有正确配置
加密
密码的情况下。
Jasypt
是一个流行的
Java
加密
框架,用于实现数据
加密
,通常用于保护应用程序中的敏感信息,如数据库密码,API密钥等等。
当应用程序需要
使用
Jasypt
加密
框架时,需要在应用程序的配置文件中添加
Jasypt
加密
器的配置属性,并设置
加密
密码。如果
加密
密码未设置或不正确,就会出现上述错误。
为解决这个问题,需要在应用程序的配置文件中添加以下配置属性:
jasypt
.encryptor.password=your_password
其中,your_password需要替换为你自己设置的
加密
密码。这样就可以解决requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password错误。
除了配置
加密
密码,还可以在配置文件中设置其他的
加密
属性,如
加密
算法、密钥长度等等。如果需要更高级的
加密
配置,可以参考
Jasypt
官方文档,了解更多详细信息。
总之,requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password错误提示表明应用程序
Jasypt
加密
框架的
加密
密码没有正确配置。通过在配置文件中添加正确的
加密
密码,就可以解决这个问题,保护应用程序中的敏感信息。
### 回答3:
“requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password”是一个常见的错误信息,在
使用
jasypt
对应用程序进行
加密
时出现。这个错误信息提示我们,在进行
加密
时需要设置
加密
密码,而我们并没有设置密码。
Jasypt
是一个
Java
库,用于对应用程序的敏感信息进行
加密
。这些敏感信息包括:数据库密码、API密钥等。
Jasypt
对这些信息进行
加密
可以避免这些信息被恶意的攻击者获取到。
在
使用
Jasypt
时,我们需要设置一个
加密
密码来对敏感信息进行
加密
。这个
加密
密码必须是强密码,不能被轻易地猜测到。同时,
加密
密码必须保密,只能被授权的人员知晓。
当我们在
使用
Jasypt
时,如果没有设置
加密
密码,就会出现“requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password”错误信息。这个错误信息提示我们,我们需要设置
加密
密码。
那么怎样设置
加密
密码呢?首先,在应用程序的配置文件中添加以下内容:
jasypt
.encryptor.password=your_password
将“your_password”替换为你自己的密码即可。
Jasypt
会自动读取这个配置属性,
使用
你设置的密码来对敏感信息进行
加密
。
总结来说,当在
使用
Jasypt
加密
应用程序的敏感信息时,一定要设置一个强密码来保证信息的安全性。如果忘记设置密码,就会出现“requir
ed
encryption
configuration
property missing:
jasypt
.encryptor.password”错误信息。