問題
- 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 ファイルで