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==
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐