コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

SAStruts 1.0.1-rc1のテスト2(roles属性)

とりあえず、

@Execute(input = "ipSearch.jsp", roles="upload test")


@Execute(input = "ipSearch.jsp", roles="upload,test")


という感じでロールを設定して、ロールを与えずに実行してみる。

org.seasar.struts.exception.NoRoleRuntimeException: [ESAS0008]ユーザ(null)は必要なロールを持っていないのでアクセスを拒否します。

という例外が発生した。とりあえずの確認OK。
で、tomcatのコンテナ認証でテスト。
tomcat-users.xmlを以下のように設定。

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users>
  <role rolename="upload"/>
  <role rolename="test2"/>
  <user password="upload" roles="upload" username="upload"/>
  <user password="test2" roles="test2" username="test2"/>
</tomcat-users>

web.xmlを以下のようにする。

<security-constraint>
 <web-resource-collection>
  <web-resource-name>User Auth</web-resource-name>
  <url-pattern>/*</url-pattern>
 </web-resource-collection>
 <auth-constraint>
  <role-name>upload</role-name>
  <role-name>test2</role-name>
 </auth-constraint>
</security-constraint>
<login-config>
 <auth-method>BASIC</auth-method>
 <realm-name>User Auth</realm-name>
</login-config>
<security-role>
 <role-name>test2</role-name>
</security-role>
<security-role>
 <role-name>upload</role-name>
</security-role>

要は、uploadユーザーはOKで、test2ユーザーはエラーになるはず。
結果は、そうなったのでOK。