我想用 oAuth 实现替换 Spring Cloud Config Server 的基本身份验证。我们暂时先不谈配置服务器,重点关注配置客户端的更改。显然我不想为整个事情编写自己的实现,而是执行我自己的逻辑并在标准配置客户端上回退。另外,我必须将更改打包到库中,因为我将在多个微服务中使用它。
长话短说,我想实现以下目标:
1a。创建自定义 Starter,其中将包含 Spring Cloud Config Client 作为依赖项。这是可行的还是必要的?
或
1b。仅使用我的自定义逻辑创建自定义 Starter,该逻辑将在 Spring Cloud Config Client 之前执行。在这种情况下,每个微服务都将具有 Spring Cloud Config Client 和自定义 Starter 作为依赖项。如何管理执行顺序并将自定义逻辑结果注入(inject)配置客户端?
2.引入新的引导设置。例如spring.cloud.config.custom.username 和 spring.cloud.config.custom.password (可选)。
3.为自定义Starter引入自定义注释。例如@enableCustomConfigClient(可选)。
我开始使用/resources/META-INF/spring.factories 中的以下代码构建自定义 Starter:
# Bootstrap components
org.springframework.cloud.bootstrap.BootstrapConfiguration=\
com.example.greeter.config.ConfigClientBootstrapConfiguration
但是此代码是在设置配置文件后调用的,而不是像 Config Client 那样首先调用。
任何建议,尤其是代码示例,我们都会表示赞赏。谢谢!
最佳答案
我选择的发布方式供将来引用。
创建新包,该包将在 Spring Cloud Config Client 之上/之前执行。这里有两个主要特点:
使用 org.springframework.cloud.bootstrap.BootstrapConfiguration={YOUR_CLASS} 创建文件 src/main/resources/META-INF/spring.factories
在 {YOUR_CLASS} 中应用自定义逻辑。不要忘记使用 @org.springframework.core.annotation.Order({YOUR_PRECEDENCE}) 并且事实上 Ordered.LOWEST_PRECEDENCE 将首先执行强>
从上一步构建 jar 并将其包含到您的项目中(作为本地文件或通过 Artifact )
将自定义逻辑添加到 Spring Cloud Config Server,以便它可以使用 JWT。
工作示例在这里:https://github.com/ka4ok85/spring-cloud-config-client-jwt
关于java - 扩展 Spring Cloud Config Client 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45260122/