Dispatcher フィルタールールは、404またはブロックされたエラーの原因となるリクエストをブロックします

アプリケーションに到達する必要のあるリクエストは、Dispatcher フィルタールールによってブロックされることがあり、404件の応答​またはブロックされたリクエストエラーが発生します。 この問題を解決するには、フィルタールールを更新し、設定を再デプロイします。

説明 description

環境

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • オンプレミス展開
  • Dispatcherベースのキャッシュとフィルタリングの設定

問題/症状

  • 有効なリソースに対する​ HTTP 404 ​応答
  • Dispatcher ログで​ ブロック ​としてマークされた要求
  • サーブレット エンドポイントは、ある環境ではエラーを返しますが、別の環境では動作します
  • 標準パス以外の静的アセットにはアクセスできません
  • アセットのレンディションを読み込めません
  • リソースが存在するにもかかわらず、予期しないリクエストの失敗が発生しました

根本原因

Dispatcherでは、デフォルトの拒否ルールが明示的に許可されていない限りすべてのトラフィックをブロックする許可リストモデルが適用されます。 許可ルールが見つからない、ルールの順序が正しくない、形式が正しくない設定、不適切なパターンマッチングなどは、有効なリクエストの通過を妨げる可能性があります。 キャッシュされた応答は、問題を非表示にし、特定を難しくする可能性があります。

確認方法

  • 問題を再現し、完全なリクエスト URLを取得します
  • ブロックされたリクエストエントリのDispatcher ログを確認する
  • リクエストをブロックする特定のフィルタールール番号を特定
  • フィルター設定ファイルを確認して、リクエストパスが許可されているかどうかを確認します

解決策 resolution

この問題を解決するには:

  1. パラメーターとセレクターを含め、失敗したリクエスト URLを正確に特定します。
  2. Dispatcher ログを確認して、ブロックされたエントリを見つけ、ルール番号をメモします。
  3. フィルター設定ファイルを確認して、拒否と許可ルールを見つけます。
  4. リクエストパスを許可するかどうかを決定します。
  5. リクエストパスとメソッドに一致する明示的な許可ルールを追加または修正します。
  6. ルールが正しく順序付けられていることを確認し、すべての拒否ルールの後に適用されるようにします。
  7. 変更を適用するには、Dispatcher設定を再デプロイまたは再ロードします。
  8. リクエストが成功し、意図しないアクセスが導入されていないことを検証します。

関連トピックス

recommendation-more-help
experience-cloud-kcs-help-kbarticles