如何向Spring Boot logging.config属性添加基本身份验证

时间:2016-06-23 16:40:22

标签: spring spring-boot spring-cloud

我目前有一个spring cloud配置应用程序从配置服务器中提取特定于环境的属性。但是,我现在正在尝试将log4j.xml文件添加到config repo中,因此我可以为每个环境指定不同的日志记录要求。我也在本地工作,但由于url请求缺少基本授权,我无法从远程git存储库访问log4j.xml文件。

配置服务器application.yml

server:
  port: 8888

spring:
  cloud:
    config:
      server:
        git:
          searchPaths: '{profile}'
          #username: username
          #password: password
          #uri: https://stash.mycompany.com/scm/project/config_repo.git
          # local
          uri: file:///C:/projects/config_repo
存储在config_repo中的

application.yml

logging:
  #config: https://stash.mycompany.com/projects/project/repos/config_repo/${spring.profiles.active:default}/log4j.xml?raw
  #username: username
  #password: password
  # local
  config: file:///C:/projects/config_repo/${spring.profiles.active:default}/log4j.xml

客户端应用程序bootstrap.yml

spring:
  application:
    name: client-app
  profiles:
    active: dev
  cloud:
    config:
      #uri: http://www.mycompany.com/repos/config-server/
      # local
      uri: http://localhost:8888/config-server

当spring boot应用程序启动时,它使用基本身份验证来下载最新的配置存储库,读取属性并将它们返回给客户端。我还没有找到在logging.config属性的url上设置基本身份验证的方法,该属性还需要凭据才能将文件内容返回给客户端以设置正确的日志记录。

如果添加基本授权标题,我可以点击以下网址,并在Postman中获取预期的log4j.xml内容:https://stash.mycompany.com/projects/project/repos/config_repo/dev/log4j.xml?raw

我有没有办法在logging.config网址请求中添加基本授权?

1 个答案:

答案 0 :(得分:0)

原来我是以错误的方式解决这个问题。我应该只是从配置服务器请求文件,而不是从存储仓库请求文件:

http://www.mycompany.com/config-server/default/${spring.profiles.active}/master/log4j.xml

application.yml看起来像这样:

logging:
  config: http://www.mycompany.com/config-server/default/${spring.profiles.active}/master/log4j.xml

配置服务器可以从repo中的指定路径返回文件内容:

  

Spring Cloud Config: Serving Plain Text