Segurança Blueprint e Aplicativos OSGi

É possível configurar a segurança de bean para que os métodos do bean possam ser acessados apenas pelos usuários que são designados a uma função especificada.

Você configura a segurança definindo um ou mais elementos de restrição de acessos>, dentro do elemento < bean> para o bean cuja segurança você deseja configurar, no arquivo XML Blueprint do seu aplicativo OSGi. Se você não definir um elemento < access-constraint>, o bean não está protegido; isto significa que todos os métodos do bean podem ser acessados por qualquer usuário.

Para que a configuração de segurança do bean seja efetivada, a segurança do aplicativo deve ser ativada no WebSphere® Application Server.

A segurança de bean pode ser configurada no nível de bean e no nível de método. Se a segurança for configurada no nível de bean e no nível de método, a configuração no nível de método terá prioridade.

O elemento < access-constraint> é definido em uma extensão de namespace Blueprint, http://www.ibm.com/appserver/schemas/blueprint/security/v1.0.0. Portanto, você deve especificar um prefixo de espaço de nomes para esta extensão no elemento < blueprint>. Nos exemplos a seguir, o prefixo "sec" é usado; ele é especificado como a seguir:
<blueprint
  xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
  xmlns:sec="http://www.ibm.com/appserver/schemas/blueprint/security/v1.0.0">

Configurando a Segurança de Nível de Bean

Para configurar a segurança no nível do bean, inclua um atributo role na definição de elemento de < access-constraint>. Os métodos do bean podem ser acessados apenas pelos usuários que são designados à uma função especificada.

No seguinte exemplo, os métodos do bean secureBean1 são acessíveis apenas pelos usuários que são designados à uma função chamada "ROLE1".
<bean
  id="secureBean1"
  class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
  <sec:access-constraint role="ROLE1" />
</bean>

Configurando a Segurança de Nível de Método

Para configurar a segurança no nível de método, inclua, além do atributo de função, um atributo de método. O método especificado pode ser acessado apenas pelos usuários que são designados à uma função especificada.

No seguinte exemplo, o método getPrice do bean secureBean1 é acessível apenas pelos usuários que são designados à função "ROLE1. Todos os outros métodos do bean podem ser acessados por qualquer usuário.
<bean
  id="secureBean1"
  class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
  <sec:access-constraint method="getPrice" role="ROLE1" />
</bean>
No seguinte exemplo, o método é acessível apenas pelos usuários que são designados à função "ROLE1" e o método printReport é acessível apenas pelos usuários que são designados à função "ROLE2". Todos os outros métodos podem ser acessados pelos usuários que são designados à função ROLE3.
<bean
  id="secureBean1"
  class="com.ibm.ws.eba.wab.componenttest.blueprint.secure.BlueprintSecureServiceImpl">
  <sec:access-constraint method="getPrice" role="ROLE1" />
  <sec:access-constraint method="printReport" role="ROLE2" />
  <sec:access-constraint role="ROLE3" />
</bean>

Designando Funções

Para atribuir uma função aos usuários ou a grupos, use o painel Função de segurança para usuário ou mapeamento de grupo no console administrativo do WebSphere Application Server .