4

アプリケーションにログイン機能があり、ユーザーをセッションに保存できます。また、ユーザーが同じブラウザーで既にサインインしている場合は、サインインを停止することもできます..しかし、サインインしたユーザーがしようとした場合別のブラウザから再度ログインして、彼を止めることができません。

ここにコードがあります..

私はこれを使用しています

             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を使用しています

4

1 に答える 1