MY-NOTEBOOK

Friday, March 24, 2006

tomcatで基本認証を設定する(tomcat)

特定のディレクトリにアクセス制限をかける方法。

※以下、$CATALINA_HOME にtomcatをインストールしているものとして説明します。

ユーザ名とパスワードの用意

$CATALINA_HOME/conf/tomcat-user.xml を編集して、ユーザ名とパスワードを設定する。

ユーザ名:foo、パスワード:hogehoge にした場合は以下のように設定。

    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="role_foo"/>
      <user username="foo" password="hogehoge" roles="role_foo"/>
    </tomcat-users>

アクセス制限するディレクトリを設定

web.xmlの設定で設定します。
$CATALINA_HOME/webapps/mywebapp/WEB-INF/web.xml に記述します。

    <web-app>
    
    ...省略
    
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>Test</web-resource-name>
    			<url-pattern>/*</url-pattern>
    		</web-resource-collection>
    		<auth-constraint>
    			<role-name>role1</role-name>
    		</auth-constraint>
    	</security-constraint>
    	
    	<login-config>
    		<auth-method>BASIC</auth-method>
    		<realm-name>Test</realm-name>
    	</login-config>
    	
    	<security-role>
    		<role-name>role1</role-name>
    	</security-role>
    
    </web-app>
    


/* のところは、各webapp以下に配置した $CATALINA_HOME/webapps/mywebapp/WEB-INF/web.xml に記述した場合は、mywebapp が基準になる点に注意。
web.xmlの エレメント内の子要素(エレメント)の出現順は、決まっていて、その順番に記述していないと、エラーになるので注意が必要です。
エラーになると、tomcat自体が起動しません。

© 2006-2012 Tomoaki Oshima