Filterのレベルわけ
現状のMapleはActionを複数チェインしたときに、Action毎にFilterを組み立て→実行→クリアを繰り返す。そのため、リクエスト全体としてFilterをかけたいというのができない。
これに対応するため、ひとつ上のFilterレベルを作ろうかと考えている。これを追加することにより3つのレベルになる。
- RequestFilter
- 新しく追加。これはActionが複数チェインされていても、最初と最後に行われる。
- GlobalFilter
- Action毎にかかる。下位のディレクトリにActionがあった場合は影響する。
- ActionFilter
- Action毎にかかる。下位のディレクトリにActionがあったとしても影響を及ぼさない。
RequestFilterChainというクラスを新設し、RequestFilterChainの最後に現状のFilterChainを実行するFilterをいれることにより、2段階のFilterChainが実現できると思う。
ややこしい仕組みではあるが、必要なときだけ顔をだすというMapleっぽいやり方なのでいいと思う。