【问题标题】:SpringBoot Admin custom authentication flow when accessing client访问客户端时的 Spring Boot Admin 自定义身份验证流程
【发布时间】:2021-05-06 13:26:51
【问题描述】:

我有许多应用程序使用 SpringBoot Admin Client 向 SpringBoot Admin 应用程序报告。我们最近正在建设的项目之一是使用自定义 JWT/刷新令牌身份验证流程,我希望 SpringBoot Admin 在访问执行器端点之前使用它,这样我也可以保护这些。

流程通过向/v1/auth/login 发送凭据来工作,这将为用户提供一个带有到期日期和刷新令牌的 JWT 令牌。 JWT 仅在短时间内有效,之后需要刷新并作为 Bearer-token 与请求一起提交。

我发现这个this thread 有点相关,但我需要能够看到它正在尝试访问哪个端点,因为并非所有应用程序都使用相同类型的身份验证。

我是否可以通过某种方式对其进行配置,以在给定与特定模式匹配的 URL 或客户端名称的情况下使用正确的标头添加授权标头?最好作为一些组件的一部分,可以将 JWT/expiry/refresh 令牌作为其状态的一部分,所以我可以在必要时刷新它。

【问题讨论】:

    标签: spring-boot-admin


    【解决方案1】:

    拥有一些应用程序标识符(例如应用程序名称)并以此区分身份验证是否足够?

    
      @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 获得的最佳标识符是什么,但这可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-04
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 2018-06-15
      • 2020-12-05
      • 2013-01-08
      • 1970-01-01
      相关资源
      最近更新 更多