[英]Best approach to use Spring websockets (sockJS + Stomp) with token based authentication (JWT)
[英]What is the best approach to implement token based authentication
我有一個 Spring 引導應用程序,它充當服務器的客戶端。 它在通過身份驗證后向服務器請求數據。 服務器使用基於令牌的身份驗證並每 15 分鍾更改一次令牌。 我的客戶端應用程序獲取新令牌的最有效和更清潔的方式是什么? 默認情況下,我使用多線程,並且在我的主應用程序的后台,我每 15 分鍾請求一次新令牌,但效率不高。 那么是否有其他方法,如反應式編程等來做到這一點? 請注意,我的應用程序需要一次向服務器發送大量請求,因此我無法在每次發送請求時檢查獲取令牌的時間。
我會將@Retryable
與RetryOperationsInterceptor
或ExceptionClassifierRetryPolicy
一起使用。
事情是這樣的:
我們有一個@Component
singleton 來保存身份驗證令牌:
@Component
public class AuthenticationHolder {
private String token;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}
使實際從服務器請求數據的@Component
不知道身份驗證過程。 它只引用了您的AuthenticationHolder
singleton,並且在它嘗試請求數據的方法中(顯然用@Retryable
注釋,它檢索令牌並發出請求。如果它因來自服務器的錯誤響應代碼而失敗,讓它拋出一個異常,它會重試。在重試之間,讓你的RetryOperationsInterceptor
更新身份驗證令牌。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.