« Ubuntu7.10(Server)でTrac | Main | CentOS5でTrac&XML-RPC »

2007.10.23

ApacheのBasic認証情報をTomcatで取得する

 Tomcat側で認証の設定を行うこともできますが、場合によってはApache側の認証処理と共通化したいと思うときも。

 例えばjsp-examplesに対してApache側で認証処理を行う場合(Apache2.2でmod_proxy_ajpで連携)。

<Location /jsp-examples>
 ProxyPass ajp://localhost:8009/jsp-examples
 AuthType Basic
 Require valid-user
 AuthName "Tomcat"
 AuthUserFile /auth/tomcat.passwd
</Location>

 なお、この場合、Tomcat側のserver.xmlにおいて、

<Connector port="8009" tomcatAuthentication="false"
 enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />


といった感じで、AJP13を受け付けるコネクタの部分にtomcatAuthentication="false"を指定する必要があります。でなければ、httpServletRequest#getRemoteUser()の戻り値がnullになってしまいます(ユーザIDを取得できない)。

 さて、Apache側で認証を行わせるアプリケーションと、Tomcat側で認証を行わせるアプリケーションを同居させる場合は・・・?

 実際にテストしたわけではありませんが、

<Connector port="8009" tomcatAuthentication="false"
 enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Connector port="8099"
 enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />


ってな感じで、AJP13用のコネクタをもう1つ開いてあげればいいんですかね?

 一応、


<Location /servlets-examples>
 ProxyPass ajp://localhost:8099/servlets-examples
</Location>

って感じで、2つのAJPコネクタを同時に使用してアクセスできるようではあります(認証処理の部分はテストしてませんが)。

|

« Ubuntu7.10(Server)でTrac | Main | CentOS5でTrac&XML-RPC »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/16828157

Listed below are links to weblogs that reference ApacheのBasic認証情報をTomcatで取得する:

« Ubuntu7.10(Server)でTrac | Main | CentOS5でTrac&XML-RPC »