問題
-
7.0 から 7.3 にアップグレードした後、初めてバンドルを起動すると、サイトはページをレンダリングせず (ホームページに「powered by」と表示される以外)、次のエラーがログに記録されます。
Caused by: java.lang.RuntimeException: com.liferay.portal.kernel.security.auth.PrincipalException: PermissionChecker not initialized
at com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttribute(ExpandoBridgeImpl.java:227)
at com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttributes(ExpandoBridgeImpl.java:292)
at com.liferay.portlet.expando.model.impl.ExpandoBridgeImpl.getAttributes(ExpandoBridgeImpl.java:283)
at com.liferay.sites.kernel.util.Sites.copyExpandoBridgeAttributes(Sites.java:118)
at com.liferay.portlet.sites.util.SitesImpl.applyLayoutPrototype(SitesImpl.java:336)
at com.liferay.sites.kernel.util.SitesUtil.applyLayoutPrototype(SitesUtil.java:89)
at com.liferay.portal.service.impl.LayoutLocalServiceImpl._applyLayoutPrototype(LayoutLocalServiceImpl.java:3706)
... 139 more
Caused by: com.liferay.portal.kernel.security.auth.PrincipalException: PermissionChecker not initialized
...
Environment
- DXP 7.3
解決策
- この動作は、 LPS-133177の修正を含むパッチをインストールすることで解決されます。これは現在、将来の修正パック内でリリースされる予定です (またはホットフィックスを介して追加できます)。
- または、回避策として のポータル プロパティを次の起動イベントの前に設定できます (1 回の起動試行にのみ必要)。これにより、エラーを回避できます:
permissions.custom.attribute.write.check.by.default=false
追加情報
- このエラーは、レイアウトが Expando 属性を取得してサイトのページの 1 つに適用しようとしているときに発生する可能性があります。これには、期待どおりに属性を表示/アクセスするための権限チェックが必要です。 ただし、この場合 (ページにアクセスするパーミッションを持つユーザーではなく、ページに初めてアクセスする自動化された初期起動プロセスである場合)、expando 属性にアクセスするために必要なパーミッションが存在しません (現在のユーザーが存在しないため)。プロセスのために)。 そのため、上記の回避策を使用して (または LPS の修正を実装して) エラーが回避されると、回避策の構成は不要になります。