0

この投稿でユーザー ジャックがやりたいことと同じように、トークン認証によるログインを使用するポートレットを実行する必要があります。
そこに記載されているようにportal-impl.jar、私は使用できないため、アクセスできませんLoginUtil.login
さらに、既存のものに機能を追加することext pluginはほとんど問題外です。なぜなら、彼は「密集」するのが苦手であり、別のものを作成することは悪い習慣だからです。そこで、 のロジックに
基づいて独自のログイン関数を作成することにしました。これは基本的に同じコードですが、 requiredのプロパティがローカルに保存されています (新しい Liferay バージョンへのアップグレードは問題外なので、それを行っても問題ないと思います)。 すべて正常に動作しているように見えますが、ログインしておらず、Tomcat にエラーは表示されません。login()LoginUtilportal-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 です。

4

1 に答える 1

1

申し訳ありませんが、私の意見では、AutoLogin 機能を使用して新しいフックを作成するのが最も適切で簡単な方法です。

ps: すると、安定してアップグレードされます。

于 2013-07-23T04:59:28.027 に答える