![](/img/trans.png)
[英]Java Servlet: structuring a legacy webapp. What framework or technology?
[英]AngularJs and Java Servlet technology
我正在嘗試集成一個非常古老的Java Web應用程序和一個AngularJs前端。 我不能使用Spring框架,基本上必須手動編寫代碼。 這是我的具體問題:
我將登錄表單發布到servlet進行身份驗證,該servlet回復了一個權限對象和一個Jsessionid。 當我離開並返回頁面時,如何避免重新登錄? 我是否需要另一個cookie來存儲用戶名/密碼?
如何使用此架構提供CSRF保護?
一個例子將是非常贊賞。
我的建議是將JWT令牌與Satellizer庫一起使用,這可以簡化您的工作。 用戶登錄后,您向他頒發了JWT令牌后,他應該在每個http請求上回傳該令牌(Satellizer在成功登錄后自動注入它)。 您需要驗證它並相應地允許/限制用戶的操作。 很少有Java庫可以簡化服務器端JWT令牌的工作。 我在幾個項目jose4j庫中使用過,並且對它有積極的經驗。
Satellizer和jose4j在其wiki上都有很好的示例,介紹了如何使用它們。
我實際上實現了兩種解決方案,一種使用JWT,另一種使用傳統的Java Servlet實現(使用Jsessionid cookie)。 到目前為止,我覺得其中一個cookie更加干凈,因此以下是一些詳細信息:
Login.html將用戶名/密碼表單發布到Servlet。 Servlet驗證憑據,如果成功,則啟動新的會話(這將導致jsessionid cookie)。 如果身份驗證失敗,則返回HttpServletResponse.SC_UNAUTHORIZED。
一種。 如果回調成功,則客戶端會將瀏覽器重定向到我的application.html頁面。
b。 如果失敗,則提示消息,並停留在login.html頁面上。
到目前為止,它看起來不錯,非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.