logback.xml springproperty: 如何解密密码

logback.xml springproperty: How to decrpyt password

我们正在使用 spring-boot 和 logback 并将数据库用户名和加密密码存储在 spring application.yaml 中。我们如何在 logback.xml 中获取解密的密码,以便 dbAppender 可以连接到数据库?

感谢您的帮助。

application.yaml

datasource:
        username: root
        password: ENC(xxxxxxxxxxxxxxxxx)

logback.xml

    <springProperty scope="context" name="db.user" source="datasource.username"/>
    <springProperty scope="context" name="db.password" source="datasource.password"/>
    <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
    <connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
      <driverClass>com.mysql.jdbc.Driver</driverClass>
      <url>jdbc:mysql://host_name:3306/datebase_name</url>
      <username>${db.user}</username>
      <password>${db.password}</password>
    </connectionSource>
  </appender>

要加密属性,请使用Encryption and Decryption

要在 logback 中使用属性,请参阅 Logback extensions

但是,您实际上无法在 logback-spring.xml 内完成。因为它初始化得太早,加密的属性还没有准备好。请参阅 issue