【问题标题】:Swagger with spring boot microservice使用 Spring Boot 微服务招摇
【发布时间】:2018-09-11 14:17:29
【问题描述】:

我有一个 microservice-A,它从另一个 microservice-B 获取令牌作为标头。现在我想在微服务A中实现swagger2。问题是每个请求都流经微服务-B。所以 swagger-ui 在本地抛出错误

无法获取 microservice-B 所在的标头参数 正在尝试获取。

【问题讨论】:

  • 你的问题是什么,具体点!
  • @AkshayRohilla 我的问题是......有没有办法传递标题,例如。 JWT 令牌来招摇请求?
  • 可能是this 是你要问的。
  • @Ubercool 我无法获得 swagger-ui 本身。我应用了一些过滤器,swagger-ui 正在尝试通过这些过滤器并失败。
  • 你能用你配置了swagger-ui的类来更新问题

标签: spring-boot filter swagger microservices swagger-ui


【解决方案1】:

它无法获取微服务-B 试图获取的那些标头参数。

Swagger 自身无法调用身份验证器服务并将获得的令牌添加到另一个请求的标头中。

您可以修改Docket 对象以在标头中接受附加参数,如下所示:

docket.globalOperationParameters(
    Collections.singletonList(new ParameterBuilder()
      .name("Authorization")
      .description("Bearer [token]")
      .modelRef(new ModelRef("string"))
      .parameterType("string")
      .required(true)
      .build()
    )
);

这将允许 Swagger UI 显示附加字段以接受令牌(见下图)。需要自己获取token,可以填写在这个字段中。

希望对您有所帮助。

【讨论】:

  • 问题是......每个请求都流经其中一个微服务,然后被重定向到另一个微服务,即使是招摇撞到的微服务也首先失败,因为标头中没有令牌。所以 UI 不会生成,它会给出错误。
  • 如果不查看代码或错误堆栈就无法提供更多帮助
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 2017-11-22
  • 2015-12-03
  • 2018-07-16
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 1970-01-01
相关资源
最近更新 更多