【问题标题】:What is the best approach to implement token based authentication实现基于令牌的身份验证的最佳方法是什么
【发布时间】:2019-10-07 12:50:45
【问题描述】:

我有一个 Spring Boot 应用程序,它充当服务器的客户端。它在通过身份验证后向服务器请求数据。服务器使用基于令牌的身份验证并每 15 分钟更改一次令牌。我的客户端应用程序获取新令牌的最有效和更清洁的方式是什么?默认情况下,我使用多线程,并且在我的主应用程序的后台,我每 15 分钟请求一次新令牌,但效率不高。那么是否有其他方法,如反应式编程等来做到这一点? 请注意,我的应用程序需要一次向服务器发送大量请求,因此我无法在每次发送请求时检查获取令牌的时间。

【问题讨论】:

    标签: java spring-boot web-services authentication token


    【解决方案1】:

    我会将@RetryableRetryOperationsInterceptorExceptionClassifierRetryPolicy 一起使用。

    事情是这样的:

    我们有一个@Component 单例来保存身份验证令牌:

    @Component
    public class AuthenticationHolder {
    
        private String token;
    
        public String getToken() {
            return token;
        }
    
        public void setToken(String token) {
             this.token = token;
        }
    }
    

    使实际从服务器请求数据的@Component 不知道身份验证过程。它只引用了您的 AuthenticationHolder 单例,并且在它尝试请求数据的方法中(显然用 @Retryable 注释,它检索令牌并发出请求。如果它因来自服务器的错误响应代码而失败,让它抛出一个异常,它会重试。在重试之间,让你的RetryOperationsInterceptor更新身份验证令牌。

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 2016-05-27
      • 1970-01-01
      • 2015-06-30
      • 2021-04-26
      • 2021-01-25
      • 1970-01-01
      • 2021-10-30
      • 2023-03-29
      相关资源
      最近更新 更多