当前位置: 首页 > 知识库问答 >
问题:

总线刷新endpoint在Spring云Finchley中不工作。M8

令狐高洁
2023-03-14

我正在使用Spring cloud config Finchley。M8版本,带Spring防尘套2.0.0。释放我注意到/总线/刷新已更改为/总线刷新。但每当我使用post http请求点击url时,它都不起作用。下面是应用程序的一个片段。属性:

spring.cloud.bus.enabled=true
management.endpoints.web.exposure.include=bus-refresh,refresh
management.endpoints.web.base-path=/

此外,我扩展了WebSecurityConfigrerAdapter以添加以下代码片段:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll();
}

这是我尝试测试的url:

post http://localhost:8000/bus-refresh?destination=**:dev

然后我收到了以下错误消息

{
"timestamp": "2018-03-18T07:03:54.135+0000",
"status": 403,
"error": "Forbidden",
"message": "Forbidden",
"path": "/bus-refresh"
}

另外,这里是pom中依赖项的一个片段。xml:

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.M8</spring-cloud.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-monitor</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bus-amqp</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-server</artifactId>
    </dependency>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.security.oauth.boot</groupId>
        <artifactId>spring-security-oauth2-autoconfigure</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.retry</groupId>
        <artifactId>spring-retry</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-amqp</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-properties-migrator</artifactId>
    </dependency>
</dependencies>

有什么帮助吗?

注意:我在Spring1.5.6中使用的是旧版本的SpringCloud,它工作得很好,当我使用最新的SpringCloud版本迁移到SpringBoot2时,我遇到了这个问题。

共有2个答案

濮俭
2023-03-14

尝试以下方法解决您的问题:

spring-boot 2.0.1.RELEASE
spring-cloud-bus 2.0.0.RC1

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

      base-path: /
唐景山
2023-03-14

我找到了解决我的问题的方法,它是关于安全性的。简单地说,我用额外的两行修改了WebSecurityConfigrerAdapter中的配置方法。它就像以下片段:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests().requestMatchers(EndpointRequest.toAnyEndpoint()).permitAll();
    http.csrf().disable();
    http.httpBasic().disable();
}
 类似资料:
  • 我使用的是Spring Boot v2。5.2微服务并尝试动态刷新endpoint。我正在使用Spring Cloud API Gateway并实现了安全性,现在当我http://localhost:8012/actuator/busrefresh,我看到只有Spring Cloud API gateway反映了这些变化,但其他微服务没有。 我们如何修复它? Spring Cloud API网关

  • 我的Spring云配置客户端依赖于Spring。云起动机。公共汽车amqp,但它仍然没有启用总线/刷新endpoint 我在配置客户端应用程序中有这些依赖项,但仍然没有启用总线/刷新、总线/环境。 请让我知道我的客户申请中缺少什么。 注: 我尝试在应用程序中设置这些指标。yml或应用程序。属性,因为这些属性由总线自动配置用来启用endpoint。 在我的Spring Cloud Config Se

  • 我已经用config server和github支持的外部配置文件配置了我的应用程序。当我在cloud foundry中有一个应用程序实例时,它工作得很好。 但对于多个实例,据说要实现spring云总线,以将外部配置更改应用于所有实例。为此,我将配置服务器与Pivotal Cloud foundry上可用的rabbit MQ实例绑定。增加了Spring。云起动机。公共汽车我的构建中的amqp ja

  • 我发现Spring Cloud总线不支持在Spring Cloud版本2020.0.0上对/执行器/总线刷新的POST请求。当我尝试发送它时,我收到405“方法不允许”。是否有任何方法可以在不使用/monitor和git webhooks或降级Spring云版本的情况下自动刷新所有客户端服务的配置? 我已经包括了spring cloud starter总线amqp和spring boot star

  • 我有一个使用Spring云配置和Spring云总线的配置服务器,还有一些客户端也有Spring云总线。每次更改配置时,我都使用postman向配置服务器发送/总线/刷新。我找到了两种方法: 刷新特定客户端:http://localhost/bus/refresh/app1:dev:8080 刷新所有客户端:http://localhost/bus/refresh 有没有办法用一个post请求刷新两

  • 使用spring-Cloud网关2.0.0. M5,我在配置文件(application.yml)中定义路由。我试图通过调用POST来更新这些路由 /application/gateway/refresh. 修改后的路由或新路由不会被刷新,即使我看到(带有断点)实际上执行了刷新例程。 当在配置文件中定义路由时,刷新应该工作吗?我错过了什么? 用例是在spring配置服务器中定义的路由。