問題
Liferay.ThemeDisplay.getSessionId()
関数は一貫して空の文字列を返すので、JavaScriptを使ってセッションIDを抽出することはできません。
Environment
- Liferay DXP 7.4
解決策
-
デフォルトでは、
Liferay.ThemeDisplay.getSessionId()
関数は常に空白の文字列を返します。 これを変更するには、設定を調整する必要があります。 -
このように、問題を解決することができます:
- portal-ext.propertiesファイル内のプロパティ 'session.enable.url.with.session.id' を 'true' に設定する必要があります。
- この変更を行うと、
Liferay.ThemeDisplay.getSessionId()
関数を使ってセッションIDを取得することができます。
追加情報
-
このソリューションでは、セッションIDを取得することができますが、潜在的なリスクを理解することが非常に重要です:
-
セッションIDの可視化に伴う潜在的なセキュリティリスクから保護するため、「session.enable.url.with.session.id」プロパティは通常「false」に設定されています。
-
セッション識別子をCookieに保持することは、一般的に安全で効率的です。
-
これは、セッションIDがURLに添付されている場合、コードがこのシナリオを適切に管理しなければ、そのURLを共有すると、受信者に不注意でセッションを共有してしまう危険性があるからです。
-
- Liferayの セッション管理に関する詳細は、リンクを参照してください。
会員限定記事
Liferay エンタープライズ サブスクリプションをお持ちのお客様は1500件を超えるベストプラクティス、トラブルシューティング、その他のソリューション記事を閲覧できます。ログインすると、記事全体をお読みいただけます。
ログイン