Spring Cloud Config Server 在运行 main() 时不强制执行 BASIC 身份验证

Posted

技术标签:

【中文标题】Spring Cloud Config Server 在运行 main() 时不强制执行 BASIC 身份验证【英文标题】:Spring Cloud Config Server not enforcing BASIC Authentication when running main() 【发布时间】:2018-01-19 04:15:38 【问题描述】:

我已经配置了一个 Spring Cloud Config 服务器来强制进行 BASIC 身份验证,这是我的 application.yml 文件:

# Config Repo:
spring:
  cloud:
    config:
      server:
        git:
          uri: file:///$HOME/microservices_config_repo

# Show sensitive information for endpoints:
endpoints:
  sensitive: true

# Security for endpoints:
management:
  security:
    enabled: true

security:
  user:
    name: user1
    password: changeme

我遇到的问题是,当我启动服务器时: mvn spring-boot:run

服务器端点强制基本身份验证。 但是当我启动 Application.main() 方法时,基本身份验证已启用,但未强制执行。

意味着我可以访问以下配置: http://localhost:8888/client-config 和 http://user1:changeme@localhost:8888/client-config

谁能帮助我理解为什么会发生这种情况以及如何在运行 Application.main() 时强制执行 BASIC 身份验证,而不仅仅是通过 Maven spring-boot 插件?

注意,当我使用 maven 将应用程序打包成 jar,然后运行生成的 jar 时,会强制执行 BASIC Authentication,但仍然不能通过 IDE 直接运行 Application.main。

【问题讨论】:

"基本身份验证已启用,但未强制执行" - 你怎么知道它已启用?此外,听起来您正在构建文件中执行从 IDE 运行应用程序时缺少的某些内容。 我可以 curl localhost:8888/client-config 以及 user1:changeme@localhost:8888/client-config 发布Minimal, Complete, and Verifiable example,包括您的构建文件。 是的,ide 和 jar 之间缺少一些东西。 朋友你解决这个问题了吗?我正在尝试一些类似的解决方案。此外,我需要知道是否有其他方法可以对想要访问其配置的客户端进行身份验证。现在,这是正确的测试:例如邮递员中的user1:changeme@localhost:8888/client-config。你能分享你的代码的github repo吗?提前致谢 【参考方案1】:

也许 oy Yaml 的格式在我看来是这样的:

server:
  port:9999
spring:
  application:
    name: config-server-sample
  cloud:
    config:
      name: $spring.application.name
      fail-fast: true
      server:
        git:
          uri: url
          username: xx
          password: zz
          default-label: master
          basedir: '$user.home/$spring.application.name/default'
          timeout: 10
          clone-on-start: true
          force-pull: true
  security:
    basic:
        enabled: true
    path: /**
    ignored: /health**,/info**,/metrics**,/trace**
    user:
       name: admin
       password: tupassword

【讨论】:

你也可以分享客户端配置吗?

以上是关于Spring Cloud Config Server 在运行 main() 时不强制执行 BASIC 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

spring-cloud-starter-eureka-server 和 spring-cloud-starter-netflix-eureka-server的区别

spring-cloud-config:spring-cloud-config Maven配置错误

spring-cloud-config-server

无法通过 spring.cloud.config.enabled:false 禁用 Spring Cloud Config

0701-spring cloud config-简介Config Server开发Config Client开发

问题 spring-cloud-config 和 spring-cloud-bus