spring cloud config 使用用户认证后 刷新配置端点bus-refresh 403

呆呆的萌新 发布于 2018/06/13 14:37
阅读 2K+
收藏 1

请注意是403,不是404,2.0 暴露端点问题不存在,因为我已经暴露了。

 

服务端配置了HTTP basic用户认证的账号密码

客户端通过eureka获取配置的,也能正常获取配置,

刷新配置端点http://localhost:客户端地址/actuator/bus-refresh 能够正常刷新

但是用http://localhost:服务端地址/actuator/bus-refresh 填写了账号密码 就显示403 禁止,没法刷新配置

这怎么搞?

加载中
0
gorenull
gorenull

Spring boot 2.0的改动较大,/bus/refresh全部整合到actuador里面了,所以之前1.x的management.security.enabled全部失效,不适用于2.0
适用于2.0的配置是这样的:

 management:
  endpoints:
    web:
      exposure:
        include: bus-refresh

另外注解

 @RefreshScope 

需要在配置的页面加上,就是说附带@Value的页面加上此注解

请求刷新的页面由原来1.5.x的localhost:8888/bus/refresh
变成:http://localhost:8888/actuator/bus-refresh

注意:config-server和config-client的配置都得加上

 management:
  endpoints:
    web:
      exposure:
        include: bus-refresh

配置

呆呆的萌新
呆呆的萌新
兄弟,你这个是暴露端点的问题,我已经加了,用客户端能够成功访问,服务端在没有加security 鉴权之前也能成功访问,但是加了user password 之后,你再访问那个配置刷新断点就是403
0
大橘子呦呦呦
大橘子呦呦呦

为啥不行呢jar也加了 直接也赔了你说的这两个在配置文件离也配置了 但是还是404啊啊

0
J_panzer
J_panzer

正解~!

0
回不去家乡

总结一下:

1. server和client服务上都要配置

management.endpoints.web.exposure.include=bus-refresh

2. 在使用到配置文件中内容的类上添加注解

@RefreshScope

3. 访问http://localhost:port/actuator/bus-refresh刷新时,指定method为POST,contentType为application/json

返回顶部
顶部