答えて

0

ことの一つは、直接あなたのフィルターからディスパッチャサーブレットservice(..)メソッドを呼び出すことです。ディスパッチャーサーブラーを取得する方法 - それは春の豆として登録する必要がありますので、文脈からそれを取ることができると思いますWebApplicationContextUtils

しかし、それは醜いです。フィルターマッピングURLをよりよく構成する必要があります。実際、ディスパッチャサーブレットに続かないフィルタがある理由は何でしょうか?

2

Magnoliaでは、/ server/filters ...の各フィルタノード、またはそのノードの直下でバイパスを設定して、完全なチェーンをバイパスすることができます。 web.xmlのマッピングを変更することもできます

+0

私のweb.xmlで私は花のためのサーブレットを構成しました。(magnoliaモジュール)。私はマグノリアの中に春をロードしようとしているカスタムモジュールを作成しました。このモジュール記述子では、私はそれが春用のサーブレットであると宣言しました。私はあなたが完全なチェーンのために言ったようにバイパスを追加するためにマグノリアのフィルターチェーンの中にいたいので、urlが/ webで開始して、blossomの代わりにspringサーブレットにリクエストを送るようにします。唯一の問題は、私はそれを行う方法を本当に知らないということです。このアプローチは大丈夫ですか?ありがとう:) – Marius

+0

BlossomDispatcherServletはMagnoliaレンダリングページの一部として呼び出されます。ここにはサーブレットコンテナの関与はありません。コントローラは外部から到達できません。したがって、パスを除外する必要はありません。 @Templateまたは@Paragraphで注釈されていない)外部からアクセス可能なコントローラを追加するつもりならば、モジュールxmlファイルにDispatcherServletを追加することをお勧めします。フィルタチェーン内から呼び出されたものを除外する必要はありません。 – sigget

1

Magnoliaフィルタチェーンでuriを除外するには、Configurationの/ server/webContainerResources/mappingsにマッピングを追加します。

もう1つの方法は、フィルターチェーン全体に除外を追加することです。これは、フィルターチェーンが完全にバイパスされているのに対し、WebContainerResourceマッピングを追加すると一部のフィルターが適用されることを意味します。たとえば、Magnoliaコンテキストを設定するフィルタ。

詳細については、テクニカルガイドのRequest processing and filtersを参照してください。

関連する問題