0

私は Liferay の初心者で、メール アドレスの代わりに expando 列を使用して認証するためのフックを作成しています。認証クラスは正常に動作しますが、問題が 1 つあります。

認証が成功した後、ページをユーザーの公開ページまたは非公開ページにリダイレクトする必要があります (これらのいずれでも十分です)。インターネット上の任意のフォーラムで、これに関する一般的な手順に従いました。

  1. com.liferay.portal.kernel.events.Action を拡張するクラスを作成し、そこでロジックを実行します。私の場合、私のクラスは CustomPostLoginAction という名前です
  2. エントリを追加して portal.properties を変更します

    login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction auth.forward.by.last.path=true
    default.landing.page.path=/web/guest/home

  3. 再デプロイして「出来上がり」

Web サーバーを再起動するとすべて問題ありませんが、任意のブラウザーを使用してフックを実行すると、認証に成功すると、デフォルトのログイン エラー メッセージが表示されたままになります。コンソールを確認すると、アクション クラスが呼び出されず、認証クラスの後に特別なアクションが実行されないことがわかりました。だから私は次の質問があります:

  • 必要に応じて、プロパティ「auth.pipeline.post」の値として使用されるクラスの例はどこにありますか?

  • authenticateByEmailAddress私の認証クラスのメソッドでは、最後の引数はjava.util.Map「doActionAfterLogin」、「redirect」、「structsAction」などのパラメーターを含んでいます。そのマップのこれらのキーに値を割り当てると、何かが得られますか? はいの場合、それぞれに割り当てる有効な値の例はどこにありますか?

  • カスタムログインページで何かを変更する必要がありますか? (それは機能しますが、それでも私はこれを尋ねなければなりません)

  • クラスで作業する必要がありDefaultLandingPageActionますか? はいの場合、どうすればできますか?ポータルのバイトコード (.class) しか持っていないため

  • そして最も重要なこと:私は何を間違っていますか?

記録のために:

Liferay 6.1 バンドルと Tomcat 7 を使用しており、SDK は Liferay のデフォルト データベースに含まれています。私のソース コードやプロパティ ファイルを確認する必要がある場合は、お知らせください。公開します。

よろしくお願いします。

4

1 に答える 1

0

元の投稿にコメントを追加できないため、追加情報を求める回答を投稿する必要があります (それに応じて回答を更新します)。

portal.properties直接変更しましたか、portal.propertiesそれともフック内に新しいものを作成しましたか?

を拡張com.liferay.portal.kernel.events.Actionしたら、メソッドをオーバーライドしましたか?run

于 2013-11-25T20:54:55.303 に答える