访问客户端时的 Spring Boot Admin 自定义身份验证流程
SpringBoot Admin custom authentication flow when accessing client
我有许多应用程序使用 SpringBoot Admin Client 向 SpringBoot Admin 应用程序报告。我们最近正在建设的项目之一是使用自定义 JWT/refresh 令牌身份验证流程,我希望 SpringBoot Admin 在访问执行器端点之前使用它,这样我也可以保护它们。
该流程通过将凭据发送到 /v1/auth/login
来工作,这将为用户提供一个带有到期日期和刷新令牌的 JWT 令牌。 JWT 仅在短时间内有效,之后需要刷新并作为 Bearer-token.
与请求一起提交
我发现这个 有点相关,但我需要能够看到它试图访问哪个端点,因为并非所有应用程序都使用相同类型的身份验证。
有什么方法可以配置它以添加具有正确 header 的授权 header 给定 URL 或匹配特定模式的客户端名称?最好作为某些组件的一部分,可以将 JWT/expiry/refresh 令牌作为其状态的一部分,这样我就可以在必要时刷新它。
拥有一些应用程序标识符(例如应用程序名称)并基于此区分身份验证是否足够?
@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
获得的最佳标识符是什么,但这可行。
我有许多应用程序使用 SpringBoot Admin Client 向 SpringBoot Admin 应用程序报告。我们最近正在建设的项目之一是使用自定义 JWT/refresh 令牌身份验证流程,我希望 SpringBoot Admin 在访问执行器端点之前使用它,这样我也可以保护它们。
该流程通过将凭据发送到 /v1/auth/login
来工作,这将为用户提供一个带有到期日期和刷新令牌的 JWT 令牌。 JWT 仅在短时间内有效,之后需要刷新并作为 Bearer-token.
我发现这个
有什么方法可以配置它以添加具有正确 header 的授权 header 给定 URL 或匹配特定模式的客户端名称?最好作为某些组件的一部分,可以将 JWT/expiry/refresh 令牌作为其状态的一部分,这样我就可以在必要时刷新它。
拥有一些应用程序标识符(例如应用程序名称)并基于此区分身份验证是否足够?
@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
获得的最佳标识符是什么,但这可行。