13.2.9. アプリケーションでのセキュリティードメインの使用
概要
サーバーグループやスタンドアローンサーバーに対してセキュリティードメインを設定した後、アプリケーションを設定して使用するようにすることができます。セキュリティードメインを WAR の WEB-INF/jboss-web.xml
記述子ファイルに指定するか、アノテーションを用いて指定することが可能です。
例13.1 WEB-INF/jboss-web.xml
にセキュリティードメインを指定する
セキュリティードメインは
WEB-INF/web.xml
ファイルにある <jboss-web>
要素の <security-domain>
子要素に指定します。
<jboss-web> <security-domain>my-domain</security-domain> </jboss-web>
これが
WEB-INF/jboss-web.xml
記述子に指定できる多くの設定の 1 つになります。
例13.2 アノテーションを用いて EJB 上でセキュリティードメインを指定する
次の例は EJB 上で
SPNEGO
セキュリティードメインを指定します。セキュリティードメインは既にコンテナに設定されています。
package example.ejb3; import javax.annotation.Resource; import javax.annotation.security.RolesAllowed; import javax.ejb.EJBContext; import javax.ejb.Stateless; import org.jboss.ejb3.annotation.SecurityDomain; @Stateless @SecurityDomain("SPNEGO") @RolesAllowed("JBossAdmin") public class SessionBean implements Session { @Resource private EJBContext context; public void echo(String echo) { System.out.println(echo); System.out.println("Principal.getClass(): " + context.getCallerPrincipal().getClass()); System.out.println("Principal.getName(): " + context.getCallerPrincipal().getName()); System.out.println("isCallerInRole('JBossAdmin')? " + context.isCallerInRole("JBossAdmin")); } }
上記は完全なアプリケーションではなく、セッション Bean の実装になります。