我正在嘗試集成一個非常古老的Java Web應用程序和一個AngularJs前端。我不能使用Spring框架,基本上必須手工編寫代碼。這裏是我的具體問題:AngularJs和Java Servlet技術
我張貼登錄表單給servlet進行認證時,servlet與權限對象和JSESSIONID回覆。當我離開並返回頁面時,如何避免重新登錄?我需要另一個cookie來存儲用戶名/密碼嗎?
如何使用此架構提供CSRF保護?
一個例子將非常感激。
我正在嘗試集成一個非常古老的Java Web應用程序和一個AngularJs前端。我不能使用Spring框架,基本上必須手工編寫代碼。這裏是我的具體問題:AngularJs和Java Servlet技術
我張貼登錄表單給servlet進行認證時,servlet與權限對象和JSESSIONID回覆。當我離開並返回頁面時,如何避免重新登錄?我需要另一個cookie來存儲用戶名/密碼嗎?
如何使用此架構提供CSRF保護?
一個例子將非常感激。
我實際上實現了兩個解決方案,一個使用JWT,另一個使用傳統Java Servlet實現,使用Jsessionid cookie。到目前爲止,我覺得餅乾一個更乾淨所以這裏有一些細節:
login.html的帖子用戶名/密碼形式的servlet。 servlet驗證憑證,如果成功則啓動一個新會話(這會導致jsessionid cookie)。如果身份驗證失敗,則返回HttpServletResponse.SC_UNAUTHORIZED。
a。如果回調成功,客戶端將瀏覽器重定向到我的application.html頁面。
b。如果失敗提示消息並保留在login.html頁面上。
迄今爲止它看起來不錯並且非常直接。
我的建議是使用JWT令牌和Satellizer庫來簡化您的工作。在用戶登錄後,如果您向他發佈了JWT令牌,他應該在每個http請求上傳回該令牌(Satellizer在成功登錄後自動注入)。您需要驗證它並相應地允許/限制用戶的行爲。很少有Java庫可以簡化服務器端JWT令牌的工作。我已經在我的幾個項目jose4j庫中使用過,並且對它有積極的體驗。
Satellizer和jose4j在他們的wiki上都有很好的例子來說明如何使用它們。
這是一個很好的領導,謝謝。但在這一點上,我正在尋找一種基於cookie的方法,而不是JWT。 – JavaHead