アプリケーションにログイン機能があり、ユーザーをセッションに保存できます。また、ユーザーが同じブラウザーで既にサインインしている場合は、サインインを停止することもできます..しかし、サインインしたユーザーがしようとした場合別のブラウザから再度ログインして、彼を止めることができません。
ここにコードがあります..
私はこれを使用しています
session=getThreadLocalRequest().getSession(true);
User loggedInUser = (User) session.getAttribute("user");
このloggedInUserは、loggedInUserが別のタブで同じブラウザからアプリケーションにアクセスしようとすると、ユーザーオブジェクトを持ちます(私にとってはうまくいきます)
しかし、loggedInUser が別のブラウザからアプリケーションにアクセスしようとすると、この loggedInUser は null になります (SO は私にとっては機能しません)。
ここにコードがあります..
public User signIn(String userid, String password) {
String result = "";
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
MySQLRdbHelper rdbHelper = (MySQLRdbHelper) ctx.getBean("ManagerTie");
User user = (User) rdbHelper.getAuthentication(userid, password);
if(user!=null)
{
session=getThreadLocalRequest().getSession(true);
User loggedInUser = (User) session.getAttribute("user");
if(loggedInUser != null && user.getId() == loggedInUser.getId()){
user.setId(0);
}else{
session=getThreadLocalRequest().getSession(true);
session.setAttribute("user", user);
}
}
return user;
私はJAVA、GWTを使用しています