- - PR -
filter-mapping
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-02-09 15:09
こんにちわ
Struts1.1とtomcat5の環境で、Filterを使って Login済みチェック(クラス名 LoginCheckFilter)を行おうと しているんですが、web.xmlのfilter mappingとディレクトリ構成で、悩んでいます。 基本的には、ほとんどのリソース(JSP.servlet,jpg,css,script)への アクセス時にも、Filterをかけ(DBのアカウント情報と、いままでに 入力された情報が一回でもマッチしたかをsessionオブジェクトを使用して CHECK、だめならエラーページへフォワード)たいのですが、例外として /Login.jsp(ログイン画面) /login.do(ログインのアクションクラス) /LoginErro.jsp(ログインエラー画面) /style/login.cssとか、/script/login.inc のみは、Filterを通したくないのです。通すとだれもこのアプリにアクセスできないのでw 現在のディレクトリ構成は、webapp/testAP(ルート) の直下に すべてのJSPが配置してあります。filter mappingは、 <filter-mapping> <filter-name>LoginCheckFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> で、filterクラス内で、PATHを取ってアクセス先が Login.jsp等ならエラーチェックしないというようにしてあります。 が、なんだかいまいちな気がして。そこで、 基本的には、/* はFilter使うけど、 Login.jsp login.doは、除くという 設定方法はあるのでしょうか?もしくは、ディレクトリを Login系とそれ以外で完全にわけてしまうしかないでしょうか? (/l/Login.jsp 、/o/FirstPage.jspとかにして、/o/* をurl-patternにする) もしくは、その代替案があれば、教えていただきたく よろしくお願いいたします。 |
|
投稿日時: 2004-02-10 10:46
自己レスです。
petstore1.3.2のソースを追ったところ、 ”ほとんどのURLは、FILTERでチェックをするが、login関連のページは、 FILTERでのチェックをしない”ことの実現は、 Servlet Filterのなかでやっていました(web.xmlではなく)。 SignOnFilter.java内で、 このページへのリクエストがきて、ログイン済みじゃなかったら エラーページへフォワード、Loginページだったら、 DBをみにいいって、セッションにログイン済みフラグをたてるとか。 なので、web.xmlのfilter-mappingだけでは、無理そうでした。 Resinには、正規表現でURL-patternを指定することができる機能があるようでしたが。 あるurl-patternを exclude する方法はないみたいです。 以上、調査報告でした。 |
1
