Apache-Tomcatを連携させた状態でのURLによるアクセス制御-その2
さらに、/foo/hoge*.jspへのアクセス時に、UserAgentまでみてアクセス制御をしたい。
例えば、UserAgentが携帯のときは、/foo/hoge_ms_*.jspのみアクセス可能にし、携帯用のコンテンツ以外にはアクセスさせないようにしたい。
例によって、Apacheだけでやってみる場合は、以下のように書くとちゃんとできる。
LoadModule rewrite_module modules/mod_rewrite.so ・・・ServerName www.hoge.com ・・・ RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^DoCoMo.* [NC] RewriteRule !/foo/hoge_ms_.*.jsp /DummyNotExist.html [L] # 存在しないURLに飛ばして無理やりNotFoundにしている。 RewriteRule !/foo/hoge.* /DummyNotExist.html [L]
ただ、こいつもTomcatと連携した場合には、mod_rewriteに処理が渡らないため、うまく動かなくなる。
で、mod_jk2のworkers2.propertiesでどうにかできないか調べたけど、UserAgentまで見れないみたい。
そうなると、もう、Tomcat側でどうにかするのがよいような気がする。
とりあえず、ServletFilterか?
わかったことは。
Tomcatに割り当てられていないURLでアクセス制御をしたければ、Apacheでもできるけど、
Tomcatに割り当てられたURLで、細かいアクセス制御をしたければ、ServletFilterなりなんなりで、Tomcat側でやれ!と。