問題点

コードが作成者または発行インスタンスで実行されているかどうかを確認するには

解決策

CQ のオーサリング環境でコードが実行されているかどうかを確認する最善の方法は、次のとおりです。
DeliveryHttpServletRequest cqRequest = (DeliveryHttpServletRequest) request; // flag to indicate whether application is Author or Publish boolean isAdmin = !cqRequest.getCmsService().getDisplayControlSet(cqRequest).equals(DisplayControlSet.SHOW); // flag to indicate whether application is in preview/show mode boolean isShowMode = (cqRequest.getCmsService().getDisplayControlSet(cqRequest).equals(DisplayControlSet.SHOWMODE) || "ShowMode".equals(cqRequest.getParameter("Show")) );

このコードは変更可能な特定のコンテキストに依存しないので、URL をチェックするよりもこの方法が適しています。また、作成者サーバーは「表示」パラメーターを 1 に設定することで、公開モードに切り替えることができます。したがって、/author/somepage.html?Show=1への要求が公開状態になります。したがって、コンテキストへの依存は信頼できるソリューションではありません。