12.3. Segurança do Aplicativo EJB

12.3.1. Identidade de Segurança

12.3.1.1. Identidade de Segurança EJB

O security identity, conhecido também como invocation identity, refere-se à tag <security-identity> na configuração de segurança. Isto refere-se à identidade de outro EJB deve usar quando ele invocar os métodos nos componentes.
A identidade da invocação pode ser tanto o chamador atual ou pode ser uma função específica. Nesse caso, a tag <use-caller-identity> está presente e no segundo caso a tag <run-as> for usada.
Refira-se à Seção 12.3.1.2, “Determine a Identidade de Segurança de um EJB” para maiores informações sobre a configuração da identidade de segurança num EJB.

12.3.1.2. Determine a Identidade de Segurança de um EJB

Exemplo 12.3. Determine a identidade de segurança de um EJB a ser o mesmo ao do seu chamador

Esta amostra determina a identidade de segurança para invocações de métodos realizadas por um EJB a ser a mesma à identidade do chamador atual. O comportamento é default caso você não especifique uma declaração do elemento <security-identity>.
<ejb-jar>
  <enterprise-beans>
	 <session>
		<ejb-name>ASessionBean</ejb-name>
		<!-- ... -->
		<security-identity>
		  <use-caller-identity/>
		</security-identity>
	 </session>
	 <!-- ... -->
  </enterprise-beans>
</ejb-jar>

Exemplo 12.4. Determine a identidade de segurança de um EJB para uma função específica

Para determinar a identidade a função de segurança, use as tags <run-as> ou <role> dentro da tag <security-identity>.
<ejb-jar>
  <enterprise-beans>
	 <session>
		<ejb-name>RunAsBean</ejb-name>
		<!-- ... -->
		<security-identity>
		  <run-as>
			 <description>A private internal role</description>
			 <role-name>InternalRole</role-name>
		  </run-as>
		</security-identity>
	 </session>
  </enterprise-beans>
  <!-- ... -->
</ejb-jar>

Por default, quando você usar o <run-as>, um principal nomeado anonymous é determinado para chamadas de saída. Para determinar um principal diferente, use o <run-as-principal>.
<session>
    <ejb-name>RunAsBean</ejb-name>
    <security-identity>
        <run-as-principal>internal</run-as-principal>
    </security-identity>
</session>

Nota

Você pode usar os elementos <run-as> e <run-as-principal> dentro de um elemento servlet.