アプリケーション開発者はdeployment descriptorを編集し、ロールの設定およびロールによるアクセス制限の設定を行います。
詳細は、Java EE 6、Servlet 3.0、EJB 3.1の仕様を参照してください。
例
ServletでFORM認証を使用する場合に、fileレルム「realm1」を使用し、認可に使用するロールが「role1」「role2」の場合のweb.xmlの記述例
<?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <security-constraint> <web-resource-collection> <web-resource-name>resource1</web-resource-name> <url-pattern>/index1.html</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role1</role-name> (1) </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>resource2</web-resource-name> <url-pattern>/index2.html</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role2</role-name> (2) </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <realm-name>realm1</realm-name> <form-login-config> <form-login-page>/form.html</form-login-page> <form-error-page>/error.html</form-error-page> </form-login-config> </login-config> <security-role> <role-name>role1</role-name> (3) </security-role> <security-role> <role-name>role2</role-name> (4) </security-role> </web-app>
(1)の値は(3)で、(2)の値は(4)で定義します。
例
ServletでFORM認証を使用する場合に、fileレルム「realm1」を使用し、ServletのAPIでユーザ「servletUser1」「servletUser2」に対して認可する場合のweb.xmlの記述例
<?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>test</servlet-name> <servlet-class>sample.TestServlet</servlet-class> <security-role-ref> <role-name>servletUser1</role-name> <role-link>role1</role-link> (1) </security-role-ref> <security-role-ref> <role-name>servletUser2</role-name> <role-link>role2</role-link> (2) </security-role-ref> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping> <security-constraint> <web-resource-collection> <web-resource-name>resource2</web-resource-name> <url-pattern>/test</url-pattern> </web-resource-collection> <auth-constraint> <role-name>role1</role-name> <role-name>role2</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <realm-name>realm1</realm-name> <form-login-config> <form-login-page>/form.html</form-login-page> <form-error-page>/error.html</form-error-page> </form-login-config> </login-config> <security-role> <role-name>role1</role-name> (3) </security-role> <security-role> <role-name>role2</role-name> (4) </security-role> </web-app>
(1)の値は(3)で、(2)の値は(4)で定義します。
注意
realm-nameを指定しない場合、認証にデフォルトレルムが使用されます。