Filterのレベルわけ

現状のMapleはActionを複数チェインしたときに、Action毎にFilterを組み立て→実行→クリアを繰り返す。そのため、リクエスト全体としてFilterをかけたいというのができない。

これに対応するため、ひとつ上のFilterレベルを作ろうかと考えている。これを追加することにより3つのレベルになる。

RequestFilter
新しく追加。これはActionが複数チェインされていても、最初と最後に行われる。
GlobalFilter
Action毎にかかる。下位のディレクトリにActionがあった場合は影響する。
ActionFilter
Action毎にかかる。下位のディレクトリにActionがあったとしても影響を及ぼさない。

RequestFilterChainというクラスを新設し、RequestFilterChainの最後に現状のFilterChainを実行するFilterをいれることにより、2段階のFilterChainが実現できると思う。

ややこしい仕組みではあるが、必要なときだけ顔をだすというMapleっぽいやり方なのでいいと思う。