[英]User authentication management with user token and session management in java web application
[英]Client session management in web application on refresh of browser?
我正在使用Web應用程序。在此應用程序中,我使用了GWT2.3。 現在我的問題是關於客戶端的會話。 在客戶端,我保持如下會話
public class WorkFlowSessionFactory {
private static HashMap session;
private WorkFlowSessionFactory() {
}
public static HashMap getClientSessionInstance() {
if (session == null) {
session = new HashMap();
}
return session;
}
public static Object getValue(WorkFlowSesisonKey key) {
return getClientSessionInstance().get(key);
}
public static void putValue(WorkFlowSesisonKey key, Object value) {
getClientSessionInstance().put(key, value);
}
public static void remove(WorkFlowSesisonKey key)
{
getClientSessionInstance().remove(key);
}
public static void resetSessionUser(User user) {
session.remove(WorkFlowSesisonKey.LOGGEDIN_USER);
session.put(WorkFlowSesisonKey.LOGGEDIN_USER, user);
}
}
現在成功登錄后,我將登錄的用戶放在客戶端會話以及服務器端會話中,如下所示
session.put(WorkFlowSesisonKey.LOGGEDIN_USER, user);
現在,當我刷新瀏覽器時,會話實例變為null,所有會話變量也變為null。
我想到的一種方法是首先刷新,然后單擊服務器以獲取登錄用戶,然后再次設置客戶端會話登錄用戶。 因此,在客戶端需要登錄用戶的許多地方,它將在刷新瀏覽器后運行。
但是我不確定這是否是正確的方法。 所以請給我建議這種情況,有什么好辦法嗎? 提前致謝
是的,訪問服務器並查詢用戶是否已登錄是一個可行的解決方案。 我可以想到以下解決方案:
無論如何,請確保您已閱讀並了解GWT應用程序中的安全性。 這里有兩個很好的資源: Loginsecurity和GWT應用程序的安全性 。
重要的規則是永遠不要信任客戶。 始終檢查后端的權限和憑據 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.