問題
- Liferay DXP環境に2つの別々のサイトがあり、ユーザーのセッションが切れた後にWebページをリダイレクトする設定方法を理解したいと思っています。
Environment
- Liferay DXP 7.1
解決策
-
portal-ext.properties ファイルで
session.timeout.redirect.on.expire
をtrue
に設定している場合、セッションがタイムアウトすると、ユーザはこの特定のパスにリダイレクトされます。 -
これは、
company.default.home.url
で定義されたパスにユーザーをリダイレクトします。 例えば、company.default.home.urlを/web/example/home
に設定したとします。この場合、期限切れのセッションはExampleサイトのHome URLに送られます。
リダイレクトを調整するための、すぐに使えるオプションがいくつかあります。
- portal-ext.properties ファイルで
session.timeout.redirect.on.expire=false
を設定することで、セッションタイムアウトのリダイレクトを無効にできます。 - あるいは、期限切れのセッションがプライベートページ(つまり、認証が必要なページ)にある場合、ログイン画面にリダイレクトさせ、認証に成功したら、
auth.forward.by.redirect=true
を使って、セッションが期限切れになったページにユーザーをリダイレクトさせることもできます。 以下は物件概要である:
ログイン・ページは、"redirect "というパラメーターによってリダイレクトを読み込む。 このプロパティがtrueに設定されている場合、ログインに成功すると、ユーザは指定されたリダイレクトパスにリダイレクトされます。 ユーザがそのページを閲覧する権限を持っていない場合、プロパティ「auth.forward.by.last.path」で設定されたルールが適用される。
以下のようなurlに "redirect "パラメータを追加することで、他のアプリケーションから手動でリダイレクトを設定することができます:/c/portal/login?redirect=%2Fgroup%2Femployees%2Fcalendar. このURLは、ログインに成功すると、ユーザーをパス"/group/employees/calendar "にリダイレクトします。
一つの環境で複数のサイトを運用しており、ユーザーの所属するサイトに応じて条件付きリダイレクトが必要な場合、セッションの終了時にリダイレクトの動作を変更するカスタマイズを構築する必要があるかもしれません。 - portal-ext.properties ファイルで
追加情報
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン