ulisesbocchio / jasypt-spring-boot-samples

Sample apps using jasypt-spring-boot
132 stars 111 forks source link

Decrypt the password of the nacos connected account #15

Open zhangdonghaicn opened 1 week ago

zhangdonghaicn commented 1 week ago

Company regulations require that passwords in plain text not appear in the configuration file.

  1. Recently, the project introduced Nacos as the configuration center of the service, using the package spring-cloud-starter-alibaba-nacos-config
  2. Implement Jasypt encryption of Nacos Client login password for Nacos client and Nacos Server connection Have you dealt with cases like this, asking for advice?

local: namespace: dev

spring: application: name: mars-springboot-nacos cloud: nacos: config: server-addr: 192.168.0.1:8848 namespace: ${local.namespace} username: nacos password: ENC(GABwNsWUVBFqHr7iURHTZNbXNiI3FrAphcRkYCue0+ZBQXndNfnnOEmsxd) discovery: server-addr: 192.168.0.1:8848:8848 metadata: user.name: "admin" user.password: "admin" username: nacos password: ENC(GABwNsWUVBFqHr7iURHTZNbXNiI3FrAphcRkYCue0+ZBQXndNfnnOEmsxd) namespace: ${local.namespace}

1.Company-defined StringEncryptor public class CoustormStringEncryptor implements StringEncryptor

2. config class @Bean(name="coustormStringEncryptor ") public StringEncryptor stringEncryptor() { return new CoustormStringEncryptor(); }

3. Unable to decrypt
However, it is possible to encrypt and decrypt nacos connection passwords using StringEncryptor without overwriting Update your application's configuration

2024-11-05 15:47:22.005 ERROR 1668 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :


APPLICATION FAILED TO START


Description:

Failed to bind properties under 'spring.cloud.nacos.config.password' to java.lang.String:

Reason: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'spring.cloud.nacos.config.password' to java.lang.String

Action:

Update your application's configuration

Disconnected from the target VM, address: 'javadebug', transport: 'shared memory'

Process finished with exit code 1