Liferay Portal 6.2 SP9 または LPS-40597を含むフィックスパックにアップデートすると、ゲストユーザーが閲覧できていたWebコンテンツアセットが表示されなくなります。
再現するための手順
6.2 SP9以前の挙動
-
journal.article.view.permission.check.enabled=true
inportal-ext.properties
. - Liferay Portal 6.2 SP7 のクリーンな(パッチやカスタマイズのない)インスタンスを起動します。
- サイトにページを追加し、そのページにWebコンテンツポートレットを追加します。
-
ゲスト に閲覧権限があるように、Web コンテンツポートレットを設定します。
- Wrench のアイコン → Configuration をクリックします。
- 権限 タブをクリックします。
- Guest の隣にある View のチェックボックスがオンになっていることを確認します。
- [Save]ボタンをクリックします。
- iframeを閉じます。
- ウェブコンテンツポートレットに、ウェブコンテンツを1つ追加します。
- ゲストユーザーとしてサイトを訪れると、ウェブコンテンツが表示されます。
- アプリケーションサーバーをシャットダウンします。
- Liferay Portal 6.2 SP9を導入したアプリケーションサーバーを起動し、上記の手順と同じ 同じ データベースに接続されていることを確認します。
- ゲストユーザーとしてサイトを訪問する。 ユーザーは、ウェブコンテンツの記事が表示されないことに気づくでしょう。 ゲストユーザーには、そのアセットを表示する権限がありません。
解決策
技術解説
この問題の根本的な原因は、LPS-40597のこの コミット にあります。 journal.xml
ファイルで、guest および site member ロールに閲覧権限が追加されます。 <guest-unsupported>
タグについて、閲覧権限が削除されました。
LPS-40597の前に、ポータルはゲスト(またはサイトメンバー) が の閲覧権限を持たないかどうかをチェックしたのです。 ユーザーに閲覧権限がなかった場合、ウェブコンテンツの記事は表示されません。 未定義の場合、ユーザーはウェブコンテンツを見ることができます。
LPS-40597の後、ポータルはゲスト(またはサイトメンバー) 、 が閲覧権限を持っているかどうかを確認しました。 閲覧権限がある場合は、ウェブコンテンツの記事が表示されます。 未定義の場合、彼はウェブコンテンツを見ません。
コントロールパネル → ロール に反映されます。
- Admin → Control Panel をクリックします。
- 役割をクリックします。
- アクション → 権限の定義 の横にある ゲストをクリックします。
- 左サイドメニューの「 サイト管理 → コンテンツ → ウェブコンテンツ」をクリックします。
以下のスクリーンショットでわかるように、Liferay Portal 6.2 SP7 では、 Resource Permissionsの下に view permission が存在しないのです。
Liferay Portal 6.2 SP9以降では、Resource Permissionsの下にビューの権限設定があります。 閲覧権限のチェックが外れている。
この新しい権限チェックの仕組みでは、ゲストやサイトメンバーのロールにはリソースの閲覧権限がないため、Webコンテンツのポートレットがゲストから閲覧できるように設定されていても、ゲストユーザーはWebコンテンツを閲覧することができない。
解決策は、リソース権限でこのビュー権限をゲストとサイトメンバーに設定することです。