私は Liferay の初心者で、メール アドレスの代わりに expando 列を使用して認証するためのフックを作成しています。認証クラスは正常に動作しますが、問題が 1 つあります。
認証が成功した後、ページをユーザーの公開ページまたは非公開ページにリダイレクトする必要があります (これらのいずれでも十分です)。インターネット上の任意のフォーラムで、これに関する一般的な手順に従いました。
- com.liferay.portal.kernel.events.Action を拡張するクラスを作成し、そこでロジックを実行します。私の場合、私のクラスは CustomPostLoginAction という名前です
エントリを追加して portal.properties を変更します
login.events.post=com.liferay.sample.hook.action.CustomPostLoginAction
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/home
再デプロイして「出来上がり」
Web サーバーを再起動するとすべて問題ありませんが、任意のブラウザーを使用してフックを実行すると、認証に成功すると、デフォルトのログイン エラー メッセージが表示されたままになります。コンソールを確認すると、アクション クラスが呼び出されず、認証クラスの後に特別なアクションが実行されないことがわかりました。だから私は次の質問があります:
必要に応じて、プロパティ「auth.pipeline.post」の値として使用されるクラスの例はどこにありますか?
authenticateByEmailAddress
私の認証クラスのメソッドでは、最後の引数はjava.util.Map
「doActionAfterLogin」、「redirect」、「structsAction」などのパラメーターを含んでいます。そのマップのこれらのキーに値を割り当てると、何かが得られますか? はいの場合、それぞれに割り当てる有効な値の例はどこにありますか?カスタムログインページで何かを変更する必要がありますか? (それは機能しますが、それでも私はこれを尋ねなければなりません)
クラスで作業する必要があり
DefaultLandingPageAction
ますか? はいの場合、どうすればできますか?ポータルのバイトコード (.class) しか持っていないためそして最も重要なこと:私は何を間違っていますか?
記録のために:
Liferay 6.1 バンドルと Tomcat 7 を使用しており、SDK は Liferay のデフォルト データベースに含まれています。私のソース コードやプロパティ ファイルを確認する必要がある場合は、お知らせください。公開します。
よろしくお願いします。