この投稿でユーザー ジャックがやりたいことと同じように、トークン認証によるログインを使用するポートレットを実行する必要があります。
そこに記載されているようにportal-impl.jar
、私は使用できないため、アクセスできませんLoginUtil.login
。
さらに、既存のものに機能を追加することext plugin
はほとんど問題外です。なぜなら、彼は「密集」するのが苦手であり、別のものを作成することは悪い習慣だからです。そこで、 のロジックに
基づいて独自のログイン関数を作成することにしました。これは基本的に同じコードですが、 requiredのプロパティがローカルに保存されています (新しい Liferay バージョンへのアップグレードは問題外なので、それを行っても問題ないと思います)。
すべて正常に動作しているように見えますが、ログインしておらず、Tomcat にエラーは表示されません。login()
LoginUtil
portal-impl.jar
さて、私の問題は、コードのどの部分が実際にユーザーをログインさせているのかがわからないことです。
これだと思います
session.setAttribute("j_username", userIdString);
session.setAttribute("j_password", user.getPassword());
session.setAttribute("j_remoteuser", userIdString);
session.setAttribute(WebKeys.USER_PASSWORD, password);
PS:カスタムログインメソッド(繰り返しますが、LoginUtilのログインメソッドと同じコードです)の後、次のコードを入力すると:
ThemeDisplay td = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY);
User uu = td.getUser();
System.out.println("user = " + uu.getEmailAddress());
と出力されるuser = default@liferay.com
ので、ログインに失敗します。
ユーザーはそのコードでどこにログインしていますか?!
PPS: 私の portal-ext.properties には、次のアドオンがあります。
auth.pipeline.enable.liferay.check=false
session.enable.persistent.cookies=true
session.enable.phishing.protection=false
session.disabled=false
session.test.cookie.support=true
Liferay の私のバージョンは 5.2.3 です。