druid ConfigFilter wiki文档
https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter
生成密钥
cd C:\Users\Administrator\.m2\repository\com\alibaba\druid\1.1.6
java -cp druid-1.1.6.jar com.alibaba.druid.filter.config.ConfigTools {明文密码}
publicKey和password替换到程序中用于登录认证
privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAmUL34mZG/waEjmf0VoeSHSq1HZSRqcGuQLFbP08R5eEyih91ipLgt75fTt1Z7zLOmtJ4aKfAZCsVXNWa1sXsowIDAQABAkAUcF3mj4VAVXowE6T+NS5DPYLR4xJZ9T5r2js1AjJ82YqgDqowXM1PEGp+x3q51ccLSYKF0Y1s79vX+LOf0djBAiEA0M8Mu5hXvhdc15iHzFvkpky/8eQ9nsJMBjTKKk+O5DkCIQC75iayAfXX4XkIu1B4kJiHpN+fuhKiFi0RCTcJLPTvuwIhALVesuObXtNZfaYy8fma9A9S6QKVysREZj6ZyeRYeHhZAiAIuu/PU4H9rs811aYug+FiZAmz3SxidY9QfFIfTgRvYwIhAIVQ4DcahPCeCnGxoPZkoH1LbOiGh/gEYyNYwoUW1fu6
publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJlC9+JmRv8GhI5n9FaHkh0qtR2UkanBrkCxWz9PEeXhMoofdYqS4Le+X07dWe8yzprSeGinwGQrFVzVmtbF7KMCAwEAAQ==
password:N93AzgwuNOT59JN392kVbq1Z+Y+V8LXgDLyLfsiM26Xhxk3i/6UMSKJUki1iBJ1seuBJD6GUWg8pyA3epSkZkQ==
修改druid配置文件
1.修改spring.datasource.password
2.新增spring.datasource.publickey
3.修改filters,增加config
4.修改connection-properties,增加config.decrypt=true;config.decrypt.key=${spring.datasource.publicKey}
spring:
servlet:
multipart:
max-file-size: 30MB
max-request-size: 100MB
application:
name: app-service
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/db?serverTimezone=UTC&characterEncoding=utf8&&useSSL=false
username: username
password: N93AzgwuNOT59JN392kVbq1Z+Y+V8LXgDLyLfsiM26Xhxk3i/6UMSKJUki1iBJ1seuBJD6GUWg8pyA3epSkZkQ==
publickey: MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJlC9+JmRv8GhI5n9FaHkh0qtR2UkanBrkCxWz9PEeXhMoofdYqS4Le+X07dWe8yzprSeGinwGQrFVzVmtbF7KMCAwEAAQ==
type: com.alibaba.druid.pool.DruidDataSource #这里是配置druid连接池,以下都是druid的配置信息
filters: stat,wall,log4j,config
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
connection-properties: druid.stat.merggSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${spring.datasource.publickey};
使用jvm参数进行配置
我用的是druid-1.1.6,修改druid配置没有起作用,仍然报Access Denied错误,通过断点ConfigFilter源码发现没有拿到druid配置,最终使用jvm参数方式解决。
-Ddruid.config.decrypt=true
-Ddruid.filters=config,stat,wall,log4j
-Ddruid.config.decrypt.key=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMMcdmw/AZYSCv7s78gzR+6wC55Ir7kAUHXNZGaE9o1LG9FHbZs3n29k/DB4/fzh5ID8Tgly/lCWoluKYyaFv5kCAwEAAQ==