问题标签 [spring-cloud-config-server]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
492 浏览

spring-boot - 如何使用 docker secret 设置属性 spring.cloud.config.server.git.password

我想 dockerize 我的 spring 云配置服务器应用程序。我正在创建一个 docker secretgit-repo-pass来存储 github 帐户密码。我正在SPRING_CLOUD_CONFIG_SERVER_GIT_PASSWORD使用 docker 机密的默认路径设置环境,即/run/secrets/git-repo-pass. 但是,当我运行 compose 并检查容器时,我看到环境实际上是设置为路径而不是该路径的内容。

在下面分享我的 docker-compose.yml 文件,

抛出异常: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot load environment] with root cause

如果有办法使用 docker secrets 加载应用程序属性,请告诉我。谢谢你 !!

0 投票
1 回答
395 浏览

java - 有没有一种方法可以在 tomcat 服务器启动之前检查 Spring Boot Project 中的 application.properties 文件中是否存在数据?

我正在编写一个 Spring Boot 项目来运行一个云配置服务器和 3 个微服务作为客户端运行。

我想在启动 tomcat 服务器之前检查 application.properties 或 yaml 文件中所有属性的可用性。

我们已经有一个类似的数据库启动验证,但在这里我试图实现相同的属性文件可用性。

有人可以让我知道或建议可能的解决方案。

0 投票
0 回答
2190 浏览

spring-boot - Spring Cloud Config Server:GitLab 凭据被暴露

我是使用 spring 云配置服务器的新手。我已经通过 Spring Initlzr 设置了一个服务器作为 Spring Boot Maven 项目。我想在自托管 GitLab 服务器上使用私有存储库。

TL;博士

在任何响应中都会返回包含部署令牌(凭据)的已配置 GitLab 存储库 uri。我怎样才能防止这种情况?我不想使用 ssh 密钥。

环境

长版

GitLab 允许使用部署或访问令牌读取(拉取)存储库。我找不到任何说明如何在 Spring Cloud 配置服务器中进行配置的文档。根据 spring.io 上的官方文档,服务器使用 JGit 与远程 git 存储库进行通信。

因此,我查阅了 JGit 文档并找到了有关如何在 GitLab 中使用部署令牌的说明。您使用基本的 http 身份验证指定 GitLab 存储库 uri,并另外指定用户名和密码。 https://www.codeaffine.com/2014/12/09/jgit-authentication/(认证@GitLab)

我为 spring 云配置服务器采用了它并且它可以工作,但是在提供内容时,GitLab 存储库 uri 中配置的凭据也会暴露。当我删除 uri 或用户名/密码属性中的凭据时,服务器无法连接到存储库。

应用程序属性:

读取服务的属性会返回如下响应:
GET https://cloud-config.home.local:8888/some-service/development
响应:

最好的问候,
大卫

更新

根据 GitLab 文档,您也可以使用私有访问令牌读取存储库。见链接:https ://docs.gitlab.com/ee/api/README.html#personalproject-access-tokens

我在 GitLab 服务器上创建了一个私有访问令牌,并尝试在 spring 云配置服务器中对其进行配置。当我添加?private-token=<token>参数时,服务器不会启动,因为 JGit 似乎将路径附加到配置的 uri,这会导致无效的 url。
Caused by: org.apache.http.client.CircularRedirectException: Circular redirect to 'https://gitlab.home.local/spring-cloud-config.git?private_token=<token>/info/refs&service=git-upload-pack'

我还尝试将令牌添加为 application.properties 中的标头字段。但是此时该属性似乎被忽略或至少没有被评估。
spring.cloud.config.headers.PRIVATE-TOKEN=<token>或者
spring.cloud.config.headers.Authorization=Bearer <token>

0 投票
1 回答
279 浏览

spring-cloud-config-server - Spring Cloud Config Server/Bus 自动刷新扩展性

据我所知,当 Spring Cloud Config Server 配置更改时,可以通过 Spring Cloud Bus 在微服务之间传播刷新事件。然后,这会触发通知的微服务从 Spring Cloud Config Server 拉取最新配置。

这种方法是否可以很好地扩展?我的意思是我们可以拥有 1000 个微服务实例,如果某些全局配置发生更改,那么所有这 1000 个微服务将同时尝试从配置服务器获取配置。这不是潜在地意味着超载和崩溃吗?

0 投票
2 回答
1388 浏览

spring-boot - Spring Cloud 配置服务器未读取本地 git 存储库中的属性文件

我正在尝试读取本地 git 存储库中微服务的属性文件。它没有在 propertySource 中添加文件详细信息。它是空白的。

请求 - http://localhost:8888/limit-service/default

响应 - {"name":"limit-service","profiles":["default"],"label":null,"version":"91d0b396ff46642fc4efc1ec31e616487f51b10b","state":null,"propertySources":[]}

本地 git 存储库中存在的属性文件的名称 - limit-service.properties

以下是配置服务器的配置详细信息 -

请在尝试请求详细信息时参考以下日志 -

0 投票
1 回答
269 浏览

spring-boot - SpringBoot Config Server 文件分隔符问题

我已经配置了与 Git 存储库集成的 Spring Boot Config 服务器(2.4.1 版本)。

配置看起来有效,从 git 加载文件期间没有问题,但是当我指向 localhost:port/application/dev 我得到

我打开了所有内容的记录,我发现配置服务器正确下载了文件并将文件保存在临时文件夹中的某个位置,例如:

但是 NativeEnironmentRepository 预计它将位于:

这也是有效的 Windows 路径。

当我打开调试器时,我发现 NativeEnvironmentRepository 检查路径(1)

反对模式(2),它失败了。所以结果

是空的。

这是 SpringBoot 配置服务器上的错误吗?还是我应该设置/更改配置中的某些内容?看起来 NativeEnvironmentRepository 应该使用系统 File.separator ...

0 投票
1 回答
75 浏览

java - Spring Config 服务器 - 无法获取属性

我无法从另一个 spring 应用程序的spring 配置服务器中获取属性。

我可以使用浏览器获取它,因此配置服务器本身似乎很好,但是我的客户端应用程序似乎只是忽略了我应该在哪里获取属性的配置。

配置服务器很简单:

和 application.properties

我现在不想使用任何 git,所以我只使用一个名为的本地文件

新闻服务-config.properties:

我可以使用浏览器很好地获取属性:

在此处输入图像描述

..所以我猜它在我的其他配置中!

客户_

首先,我使用 application.yml 进行一般配置,如下所示:

关于配置服务器的内容不多。除了用于配置服务器配置的 application.yml 之外,我还创建了一个bootstrap.properties文件:

名称正确。(配置服务器上配置文件的名称)服务器地址正确。

我要测试所有内容的 REST 控制器:

..但是它没有从配置服务器获取任何东西....

在此处输入图像描述

我的客户的资源结构:

在此处输入图像描述

任何想法我做错了什么?

亲切的问候...

0 投票
0 回答
253 浏览

spring - Spring Cloud 配置服务器 - Bitbucket 会话

我正在尝试通过 Bitbucket 解决 Spring Cloud Config Server 的一个尴尬问题。

我在 Bitbucket 云服务器上的配置仓库。bootstrap.yaml文件如下所示。

配置服务器从 bitbucket 获取所有属性,并在应用程序启动后写入 /tmp 文件。

没有例外或没有警告。一切都很好。

几个小时后,我收到一个错误,如下所示,该应用程序试图从 bitbucket 获取以更新所有属性。

我想问题出在 Bitbucket Session 上。为什么我会这样想?

因为通过用户名和密码成功登录到 bitbucket 服务器后,应用程序会获取所有属性。

然后,几个小时后,我遇到了同样的错误。

你有解决这个问题的想法吗?

0 投票
1 回答
446 浏览

java - 如何通过 Web 浏览器访问 spring 配置服务器属性?

我设法访问了我的配置服务器的属性文件一次。我的配置似乎发生了一些变化,我无法重复......

在这一点上我很绝望。我从 2 天开始就试图弄清楚这一点,我的心理健康开始受到影响。

我的pom.xml

最后是项目中唯一的类

由于我没有使用 git 而是使用本地文件,所以我的资源文件夹中的 application.properties 文件如下所示:

指向我的配置所在的本地文件夹

这是名为 ever.properties 的配置文件:

整个项目结构:

在此处输入图像描述

请...通过浏览器访问此文件的属性的正确 URL 是什么?

在此处输入图像描述

我发现了几个教程,人们以这种方式访问​​属性文件。甚至我也设法做到了一次,如此处所示。(该文件在该项目中被命名为newsservice-config.properties,但配置是相同的)

在此处输入图像描述

任何人都可以在不使用任何 git 的情况下解释所有这一切背后的一些逻辑吗?

0 投票
0 回答
63 浏览

spring-security - Spring Cloud Config服务器集成spring security后不工作

目前我们正在使用 spring cloud config server 将我们的项目配置转移到 github。将spring security引入我们的云配置服务器后,我无法调用/{app}/{profile}/{tag}url。我们的配置服务器有一个控制器,里面有一些端点。这些端点是安全的并且工作正常。但是从 github 获取的默认端点configs/files不起作用。

我正在使用keycloak&OAuth2作为 idm。

我在这里想念什么?configure(HttpSecurity http)中的任何其他配置?请大家帮忙。。

提前谢谢