16.5.2. Configuração do Java Authorization Contract for Containers (JACC) para Segurança

Para configuração do Java Authorization Contract for Containers (JACC), você precisa configurar o seu security domain com o módulo correto e então modificar o seu jboss-web.xml para inclusão dos parâmetros corretos.
Adição do Suporte JACC para o Security Domain

Para adição do suporte JACC ao security domain, adicione a política de autorização JACC à pilha de autorização, com o conjunto do aviso required. Segue abaixo uma amostra do security domain com o suporte JACC. No entanto, o security domain é configurado no Management Console ou Management CLI, ao invés do XML diretamente.

<security-domain name="jacc" cache-type="default">
    <authentication>
        <login-module code="UsersRoles" flag="required">
        </login-module>
    </authentication>
    <authorization>
        <policy-module code="JACC" flag="required"/>
    </authorization>
</security-domain>

Configuração do Web Application para uso do JACC

O jboss-web.xml está localizado no diretório META-INF/ ou WEB-INF/ de sua implantação e contém substituições e uma configuração específica do JBoss adicional para o contêiner da web. Para uso do seu security domain habilitado do JACC, você precisa incluir o elemento <security-domain> e também configurar o elemento <use-jboss-authorization> para true. O seguinte aplicativo está configurado de forma apropriada para uso do security domain JACC acima.

<jboss-web>
    <security-domain>jacc</security-domain>
    <use-jboss-authorization>true</use-jboss-authorization>
</jboss-web>

Configuração do Aplicativo EJB para uso do JACC

A configuração dos EJBs para uso de um security domain e para uso do JACC difere-se dos Aplicativos da Web. Para um EJB, você pode declarar o method permissions num método ou grupo de métodos no descritor ejb-jar.xml. Com o elemento <ejb-jar>, quaisquer elementos <method-permission> contém informações sobre as funções JACC. Refira-se à configuração de amostra para maiores informações. A classe EJBMethodPermission faz parte do Java Enterprise Edition 6 API e está documentada no http://docs.oracle.com/javaee/6/api/javax/security/jacc/EJBMethodPermission.html.

Exemplo 16.1. Permissões do Método JACC no EJB

<ejb-jar>
  <method-permission>
    <description>The employee and temp-employee roles may access any method of the EmployeeService bean </description>
    <role-name>employee</role-name>
    <role-name>temp-employee</role-name>
    <method>
      <ejb-name>EmployeeService</ejb-name>
      <method-name>*</method-name>
    </method>
  </method-permission>
</ejb-jar>
	      

Você pode restringir também os mecanismos de autenticação e autorização para um EJB usando o security domain, da mesma forma que você pode realizar num aplicativo da web. Os security domains são declarados no descritor jboss-ejb3.xml no elemento filho <security>. Além do security domain, você pode especificar o run-as principal, que altera o principal do EJB sendo executado.

Exemplo 16.2. Amostra do Security Domain num EJB


<security>
  <ejb-name>*</ejb-name>
  <security-domain>myDomain</s:security-domain>
  <run-as-principal>myPrincipal</s:run-as-principal>
</s:security>