【问题标题】:Spring Cloud Config Basic Security throwing 401 errorSpring Cloud Config Basic Security 抛出 401 错误
【发布时间】:2019-10-13 16:01:31
【问题描述】:

我在服务器端有以下配置:

server:
  port: 8888

spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          search-locations: "classpath:/config"
  security:
    user:
      name: test
      password: test

并在客户端进行以下配置:

spring:
  cloud:
    config:
      fail-fast: true
      profile: "${spring.profiles.active}"
      uri: "${SPRING_CLOUD_CONFIG_URI:http://localhost:8888/}"
      username: test
      password: test

我可以使用user/pwd 作为test/test 成功地从浏览器访问属性,但是当我的客户端尝试获取它时失败并出现 401 错误:

INFO 7620 --- [5cee934b64bfd92] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
WARN 7620 --- [5cee934b64bfd92] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: 401 null

我尝试将 Spring Cloud 的日志级别设置为 DEBUG,但没有记录任何其他内容,所以我不知道为什么我会从客户端获取 401,而我可以使用相同的凭据通过浏览器成功访问属性。

我还尝试从服务器和客户端移除安全性,它运行良好,这意味着其余配置都很好。但问题是,当我应用基本安全性时,我忽略了什么以及为什么它不起作用并抛出 401?

【问题讨论】:

  • 能否请您更新您的日志属性,因为根据您描述的问题很难找出原因。您需要更新实际发生的异常或错误。
  • 现在是否已排序,如果是,您能否更新一下。

标签: spring-cloud-config


【解决方案1】:

请检查您指定配置文件名称的方式是否正确,以及它是否在 Java 代码中正确解析。您可以实现 CommandLineRunner 并从环境变量打印活动配置文件。

如果您在 pom.xml 中将属性 spring.profiles.active 指定为 native,则可以在 application/yaml 文件中将其解析为 @spring.profiles.active@

如果您将属性文件指定为 VM 参数,那么它应该适用于当前实现。

如果您没有在 pom 或 VM 参数中指定 spring.profiles.active,它将解析为默认配置文件,而不是本机配置文件。配置客户端和配置服务器中的配置文件应该相同。

【讨论】:

    【解决方案2】:

    尝试检查这些配置:

    • spring.cloud.config.username
    • spring.cloud.config.password

    这两个属性都应该在 bootstrap.properties(而不是 application.properties)中定义

    【讨论】:

      【解决方案3】:

      是的,我们必须使用引导属性,因为当 Spring Cloud 应用程序启动时,它会创建引导上下文。引导上下文正在搜索 bootstrap.properties 或 bootstrap.yaml 文件,而应用程序上下文正在搜索 application.properties 或 application.yaml 文件。引导上下文是主应用程序的父上下文

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-10
        • 2020-06-21
        • 2019-06-09
        • 2015-12-11
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 2018-06-25
        相关资源
        最近更新 更多