ユーザーのログインを別の場所から制限する必要があります。このため 私は、ようなコードを書かれている:複数のユーザーのログインを制限する
ServletContext context = session.getServletContext();
HashMap logInMap = null;
if (context.getAttribute("logInMap") != null) {
logInMap = (HashMap) context.getAttribute("logInMap");
if (logInMap .containsValue(session.getId())) {
System.out.println("duplicatesession");
// done something...
}else if (logInMap.get(loginId) != null && !logInMap.get(loginId).equals(session.getId())) {
System.out.println("already Logged In");
//done something...
}
} else {
logInMap = new HashMap();
}
logInMap.put(loginId, session.getId());
context.setAttribute("loginMap",logInMap);
しかし、新しいHashMap
が生成取得され、要求ごとに上記のコードで。 HashMap
を静的と宣言すると、ブラウザを直接閉じている間に問題が発生します。 いずれかがこの問題を助けることができれば幸いです。 解決策が春にある場合は素晴らしいでしょう。
あなたのコードによると、あなたは 'ServletContext'に' HashMap'を格納し、それを毎回生成しません。静的として宣言するべきではありません。どのような "問題が発生した"?春の方法は[春のセキュリティ](https://projects.spring.io/spring-security/)です。これは恐らくあなたが必要とするものを過剰にするでしょう。 – Oleg