我目前有一个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网址请求中添加基本授权?
答案 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中的指定路径返回文件内容: