我們使用spring安全性的spring引導來實現查詢接口。我想要做的是隻允許每個用戶一次運行固定數量的查詢。查詢可能需要很長時間,用戶可能會發送重複請求的速度超過我們的響應速度。我希望控制器一次只能計算一個子集請求,我將不得不實施一些邏輯來確定哪些請求可以響應。在控制器中獲取Spring引導/安全性的會話標記
爲此,我需要知道給定用戶的會話令牌。在控制器的方法中有沒有簡單的方法?
我們使用spring安全性的spring引導來實現查詢接口。我想要做的是隻允許每個用戶一次運行固定數量的查詢。查詢可能需要很長時間,用戶可能會發送重複請求的速度超過我們的響應速度。我希望控制器一次只能計算一個子集請求,我將不得不實施一些邏輯來確定哪些請求可以響應。在控制器中獲取Spring引導/安全性的會話標記
爲此,我需要知道給定用戶的會話令牌。在控制器的方法中有沒有簡單的方法?
如果你想在控制器獲得的sessionId您可以使用 RequestContextHolder.currentRequestAttributes().getSessionId();
我發現很容易在你的請求映射添加參數「HttpSession的會議」:
@GetMapping(value = "/hello")
public String home(HttpSession session) {
String sessionId = session.getId();
System.out.println("[session-id]: " + sessionId);
...
return "anyPage";
}
好吧,這將保持他們登錄時不斷變化?如果他們在會議中打開兩個窗口,是否重要?有沒有辦法區分? –
如果用戶在同一個會話(同一個瀏覽器)中打開兩個窗口,用戶登錄時也是如此。 –