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。