我想用oAuth实现替换Spring Cloud Config Server的基本身份验证。让我们暂时离开Config Server,关注Config Client的更改。显然,我不想为整个事情编写自己的实现,而是在标准的Config Client上执行我自己的逻辑和回退。此外,我必须将我的更改打包到库中,因为我将在多个微服务中使用它。
长话短说我想实现以下目标:
1a上。创建自定义Starter,其中包含Spring Cloud Config Client作为依赖项。它甚至是可行的还是必要的?
或
1b中。仅使用我的自定义逻辑创建自定义Starter,该逻辑将在Spring Cloud Config Client之前执行。在这种情况下,每个微服务都将具有Spring Cloud Config Client和自定义Starter作为依赖项。如何管理执行顺序并将自定义逻辑结果注入Config Client?
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那样的第一件事。
任何建议,特别是代码示例表示赞赏。谢谢!
答案 0 :(得分:1)
发布方法我选择以供将来参考。
创建将在Spring Cloud Config Client之上/之前执行的新软件包。这里有两个主要特征:
使用org.springframework.cloud.bootstrap.BootstrapConfiguration = {YOUR_CLASS}
在{YOUR_CLASS}中应用自定义逻辑。不要忘记使用 @ org.springframework.core.annotation.Order({YOUR_PRECEDENCE})以及 Ordered.LOWEST_PRECEDENCE 将首先执行的事实强>
从上一步构建jar并将其包含在您的项目中(作为本地文件或通过工件)
将自定义逻辑添加到Spring Cloud Config Server,以便它可以使用JWT。
工作示例在这里:https://github.com/ka4ok85/spring-cloud-config-client-jwt