赞
踩
1、对明文密码加密
2、自定义MongoDB配置文件,在获取密码的时候解密。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.6</version>
</dependency>
# --spring.profiles.active=prod
spring:
profiles:
active: dev
encryption:
key: fjk.fdhtpwDF.GHF
public static void main(String[] args) {
byte[] bytes = "fjk.fdhtpwDF.GHF".getBytes(StandardCharsets.UTF_8);
SymmetricCrypto aes=new SymmetricCrypto(SymmetricAlgorithm.DES,bytes);
String testStr = aes.encryptBase64("admin");
System.out.println("testStr:"+testStr);
String s = aes.decryptStr(testStr);
System.out.println("s:"+s);
}
mongodb.uri=192.xxx.xx.xx:27017
mongodb.username=mcsas
#加密后的密码
mongodb.password=rd4ytDko8pE=
mongodb.schema=mcsas
package com.xxx.framework.galaxy.apower.config; import cn.hutool.crypto.symmetric.SymmetricAlgorithm; import cn.hutool.crypto.symmetric.SymmetricCrypto; import com.mongodb.MongoClientURI; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.PropertySource; import org.springframework.data.mongodb.MongoDbFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoDbFactory; import java.net.UnknownHostException; import java.nio.charset.StandardCharsets; @Configuration @PropertySource(value = "classpath:database.properties",ignoreResourceNotFound = true) public class MongoDBConfig { @Value("${mongodb.schema}") private String databaseName; @Value("${mongodb.uri}") private String uri; @Value("${mongodb.username}") private String userName; @Value("${mongodb.password}") private String password; @Value("${encryption.key}") private String key; @Bean public MongoDbFactory mongoDbFactory() throws UnknownHostException { //解密password byte[] bytes = key.getBytes(StandardCharsets.UTF_8); SymmetricCrypto aes=new SymmetricCrypto(SymmetricAlgorithm.DES,bytes); String pwd = aes.decryptStr(password); String uriStr="mongodb://"+userName+":"+pwd+"@"+uri+"/"+databaseName; System.out.println("MongonDB Connction Info >>>>>>>>>>>>>>>>\t"+uriStr); MongoClientURI mongoClientURI=new MongoClientURI(uriStr); MongoDbFactory mongoDbFactory=new SimpleMongoDbFactory(mongoClientURI); return mongoDbFactory; } @Bean public MongoTemplate mongoTemplate() throws UnknownHostException { MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory()); return mongoTemplate; } }
package com.xxx.framework.galaxy.xx; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration; import org.springframework.boot.web.server.ConfigurableWebServerFactory; import org.springframework.boot.web.server.ErrorPage; import org.springframework.boot.web.server.WebServerFactoryCustomizer; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpStatus; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; @EnableAsync @EnableScheduling @SpringBootApplication(exclude = MongoDataAutoConfiguration.class) public class APowerApplication { public static void main(String[] args) { SpringApplication.run(APowerApplication.class, args); } }
连接为解密密码后的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。