公開日 : 2013-10-26
更新日 : $Date: 2013-11-16 23:36:15 +0900 (Sat, 16 Nov 2013) $
UrlRewriteFilter の Issue120 によると、 関数が連続した形ではうまく動作しないようです。そこでこれを修正してみました。 パッチは本家に送ったのですがここでも公開してみます。この件でお困りの方、どうでしょうか。
patch-Issue120-fixed.txt は、ソースの修正後 svn diff > patch.txt
などと実行して作成しました。
興味のある方はurlrewritefilter本体のソースを入手し、このパッチを適用すると変更内容が確認できます。
本体のソースについては以下のURLをご参照下さい。
https://code.google.com/p/urlrewritefilter/source/checkout
UrlRewriteFilter は外向けに綺麗なURLを公開し、 内側では異なるURLへのアクセスとして処理させることを可能にするライブラリです。 外に提供しているURLを内側向けのURLへリクエストのURLを書き換えてアプリケーションに引き渡します。 外向けには自由に設計された綺麗なURLを提供し、内部では自由度の高くないフレームワークの設計に沿ったURLをそのまま使う事ができます。 例えば、外向けには以下の様なURLを提示したいとします。
http://example.org/repo/data/123/なんとかかんとか
しかし、フレームワークは以下の様なURLを基本的な形として持っているとします。
http://example.org/repo/data/get.do&id=123
このような場合UrlRewriteFilterが役に立ちます。UrlRewriteFilterはこのような変換を行うのです。
Issue120によると、<to>
要素内の
関数が複数連続していると、
正しく処理できないという障害が報告されています。
つまり
/test/${upper:$1}/${upper:$1}.html
のような指定は括弧の開始と終了が正しく解釈されません。(関数は設定されているが、実際は外側の${ } で1個の関数だけだと解釈される) しかしこの修正でこの障害が解決されます。関数が複数連続で使われていても入れ子になっていても正しく動作します。
本パッチについて、第四回 #渋谷javaにて発表を行いました。その発表資料です。
この文書は
表示 2.1 日本 (CC BY 2.1)
によってライセンスされます。