如何解决SpringBoot Admin 访问客户端时自定义认证流程
我有许多应用程序使用 SpringBoot Admin Client 向 SpringBoot Admin 应用程序报告。我们最近正在建设的项目之一是使用自定义 JWT/刷新令牌身份验证流程,我希望 SpringBoot 管理员在访问执行器端点之前使用它,以便我也可以保护它们。
该流程通过将凭据发送到 /v1/auth/login
来工作,这将为用户提供带有到期日期和刷新令牌的 JWT 令牌。 JWT 仅在短时间内有效,之后需要刷新并与作为 Bearer-token 的请求一起提交。
我发现这个 this thread 有点相关,但我需要能够看到它试图访问哪个端点,因为并非所有应用程序都使用相同类型的身份验证。
有什么方法可以配置它以添加具有正确标头的 Authorization 标头,给出与特定模式匹配的 URL 或客户端名称?最好作为某些组件的一部分,可以将 JWT/到期/刷新令牌作为其状态的一部分,因此我可以在必要时刷新它。
解决方法
是否有一些应用程序标识符(例如应用程序名称)并基于此区分身份验证是否足够?
@Bean
public HttpHeadersProvider customHttpHeadersProvider(YourCustomProperties properties) {
return instance -> {
if (properties.getAppNames().contains(instance.getRegistration().getName())) {
// do jwt stuff here
return new HttpHeaders();
}else {
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.add("X-CUSTOM","My Custom Value");
return httpHeaders;
}
};
}
不确定从 instance
获取的最佳标识符是什么,但这可行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。