我有一個使用struts2與舊式servlet結合的java-web-application。 使用Acegi安全性。request.getRemoteUser()有時會返回null
在我的servlets中,我正在記錄用戶正在嘗試做什麼以及它是哪個用戶。爲了讓用戶即時使用request.getRemoteUser()
但是對於我的大供應來說,結果並不一致。大多數時候getRemoteUser()
返回正確的用戶名,但每隔一段時間我會得到一個空值。
這背後的原因是什麼?
編輯: 經過您的反饋,我發現servlet-urls根本沒有被安全覆蓋。所以這可能導致getRemoteUser()
爲空。我現在將爲這些實現安全性,並在回髮結果之前進行更多測試。
根據的JavaDoc「返回用戶的登錄提出這個要求,如果用戶已經通過認證,或NULL,如果用戶沒有通過驗證。用戶名是否與每個後續請求一起發送取決於瀏覽器和驗證類型,與CGI變量REMOTE_USER的值相同。「所以它可能是Acegi/Browser沒有按預期設置遠程用戶。 –