我使用Spring框架和這裏的一段代碼,我使用retirieve的HttpSession
對象:從子線程獲取http會話?
ServletRequestAttributes attr;
try {
attr = (ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes();
} catch (Exception e) { }
HttpSession session = attr.getRequest().getSession(false);
Holder類以暴露web請求形式爲線程綁定 RequestAttributes對象。
因此,它不會在容器創建的用於處理請求的線程之外看到。有沒有辦法在一些子線程中檢索會話?
不會,因爲這將是一個相當的安全漏洞... –
@ M.Deinum所以,任何會話是一個線程綁定的對象。但是在'servlet API'文檔或其他地方的某處指定了嗎?我從來沒有想過從多個線程訪問會話... –
也不應該你想要的。想象一下,你的會話中有一個購物車,任何人都可以修改會話並將其添加到購物車中......如果發生這種情況,我想你會不高興......想象一下,您的安全憑證存儲在會話中(春季安全),任何人都可以訪問它(一個設計錯誤的框架可以把你的密碼)... –