15.3. Configuração EJB3 RMI + SSL


Procedimento 15.4. Configure o RMI + SSL para uma Visão Geral do EJB3

Este procedimento configura a criptografia SSL do tráfego de Invocação do Método Remoto entre os EJB3 beans no servidor e um cliente rodando em outra máquina da rede.
  1. Geração de chaves de criptografia e certificado
  2. Configure um conector remoto de segurança para o RMI
  3. Anote os EJB3 beans para uso do conector RMI de segurança
Maiores informações sobre os certificados e chaves de criptografia podem ser encontradas na Seção 15.2, “Geração de chaves de criptografia e certificado”.
Crie um conector remoto de segurança para o RMI

O ejb3-connectors-jboss-beans.xml do arquivo num diretório deploy do perfil do Servidor do Aplicativo JBoss contém as definições do conector do JBoss Remoting para a invocação de método remoto EJB3.

Exemplo 15.2. Amostra do Conector EJB3 de Segurança

Os beans descritos na amostra do código são anexados ao arquivo ejb3-connectors-jboss-beans.xml. Ambos os beans são solicitados para configurar um conector de segurança para o EJB3 usando o par chave criado no Procedimento 15.1, “Gere o novo par chave e adicione-o ao "localhost.keystore" do armazenamento chave no diretório config do servidor do JBoss.”.
A propriedade keyPassword na configuração de amostra é a senha especificada do par chave quando o par chave foi criado.
A configuração de amostra cria um conector que escuta as conexões SSL na porta 3843. Esta porta precisa ser aberta no firewall do servidor para acesso aos clientes.
<bean name="EJB3SSLRemotingConnector" class="org.jboss.remoting.transport.Connector">
    <property name="invokerLocator">sslsocket://${jboss.bind.address}:3843</property>
    <property name="serverConfiguration">
      <inject bean="ServerConfiguration" />
    </property>
    <property name="serverSocketFactory">
      <inject bean="sslServerSocketFactory" />
    </property>
  </bean>

  <bean name="sslServerSocketFactory" class="org.jboss.security.ssl.DomainServerSocketFactory">
     <constructor>
        <parameter><inject bean="EJB3SSLDomain"/></parameter>
     </constructor>
  </bean>
  <bean name="EJB3SSLDomain" class="org.jboss.security.plugins.JaasSecurityDomain">
     <constructor>
        <parameter>EJB3SSLDomain</parameter>
     </constructor>
     <property name="keyStoreURL">resource:localhost.keystore</property>
     <property name="keyStorePass">KEYSTORE_PASSWORD</property>
     <property name="keyAlias">ejb-ssl</property>
     <property name="keyPassword">EJB-SSL_KEYPAIR_PASSWORD</property>
  </bean>
Copy to Clipboard Toggle word wrap
Configuração dos Beans EJB3 para o Transporte SSL

Todos os EJB3 beans usam o conector RMI por padrão. Anote o bean com o @org.jboss.annotation.ejb.RemoteBinding para ativar a invocação remota de um bean através do SSL.

Exemplo 15.3. A anotação EJB3 bean para ativar a invocação remota de segurança

A anotação aplica o bind num EJB3 bean para o StatefulSSL do nome JNDI. A implementação proxy da interface remota, retornada a um cliente quando o bean é solicitado a partir do JNDI, comunica-se com o servidor através do SSL.
@RemoteBinding(clientBindUrl="sslsocket://0.0.0.0:3843", jndiBinding="StatefulSSL")
  @Remote(BusinessInterface.class)
  public class StatefulBean implements BusinessInterface
  {
     ...
  }
Copy to Clipboard Toggle word wrap

Nota

O endereço IP é especificado como 0.0.0.0, significando "todas as interfaces" no Exemplo 15.3, “A anotação EJB3 bean para ativar a invocação remota de segurança”. Altere isto para o valor da propriedade do sistema ${jboss.bind.address}.
Ativação de ambas invocações de segurança e insegurança de um EJB3 bean

Você pode ativar ambas invocações do método remoto de segurança e insegurança. O Exemplo 15.4, “Anotação do EJB3 para invocação de segurança e sem segurança” demonstra as anotações para isto.

Exemplo 15.4. Anotação do EJB3 para invocação de segurança e sem segurança

 @RemoteBindings({
     @RemoteBinding(clientBindUrl="sslsocket://0.0.0.0:3843", jndiBinding="StatefulSSL")
     @RemoteBinding(jndiBinding="StatefulNormal")
  })
  @Remote(BusinessInterface.class)
  public class StatefulBean implements BusinessInterface
  {
     ...
  }
Copy to Clipboard Toggle word wrap

Nota

O endereço Ip é especificado como 0.0.0.0, significando "todas as interfaces" no Exemplo 15.4, “Anotação do EJB3 para invocação de segurança e sem segurança”. Altere isto para o valor da propriedade de sistema ${jboss.bind.address}.
Caso os clientes solicitarem o StatefulNormal a partir do JNDI, o roxy retornado implementando a interface remota comunica-se com o servidor através do protocolo do soquete descriptografado. Caso o StatefulSSL for solicitado, o proxy retornado implementando a interface remota comunica-se com o servidor através do SSL.
Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat