17.2. Identidade configurada com a Senha baseada na Criptografia - Password Based Encryption (PBE)


O org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule é um módulo de logon para definição de forma estatística de uma fonte de dados usando uma senha que foi criptografada pelo JaasSecurityDomain. Segue abaixo o formato base64 da senha de fonte de dados gerado usando o PBEUtils:

Procedimento 17.4. Criptografia da senha com os PBEUtils - Plataformas de versão 5.0 e 5.0.1

Este procedimento criptografa uma senha na Plataforma do Aplicativo JBoss Enterprise de versões 5.0 e 5.0.1.
  • Execute o comando:
    java -cp jboss-as/common/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
      salt count domain-password data-source-password
    Copy to Clipboard Toggle word wrap
    Resultado:

    A senha criptografada é exibida.

Procedimento 17.5. Criptografia da senha com PBEUtils - Platforma da versão 5.1

Este procedimento criptografa uma senha da Plataforma do Aplicativo JBoss Enterprise de versões 5.1 e versões superiores.
  • Execute o comando:
    java -cp jboss-as/lib/jbosssx.jar org.jboss.security.plugins.PBEUtils \
     salt count domain-password data-source-password
    Copy to Clipboard Toggle word wrap
    Resultado:

    A senha criptografada é exibida.

Os parâmetros para os PBEUtils são os seguintes:
salt
O atributo Salt a partir do JaasSecurityDomain (Ele deve conter oito caracteres).
contagem
O atributo IterationCount a partir do domínio JaasSecurity.
senha-domínio
A senha de texto plano mapeada ao atributo KeyStorePass a partir do JaasSecurityDomain.
senha-fonte-de-dados
A senha de texto plano para a fonte de dados que deve ser criptografado com a senha JaasSecurityDomain.
O Exemplo 17.3, “Amostra do comando PBEUtils ” fornece uma amostra do comando com seu resultado.

Exemplo 17.3. Amostra do comando PBEUtils

java -cp jbosssx.jar org.jboss.security.plugins.PBEUtils abcdefgh 13 master password
Encoded password: 3zbEkBDfpQAASa3H39pIyP
Copy to Clipboard Toggle word wrap
Adiciona a seguinte política do aplicativo ao arquivo $JBOSS_HOME/server/$PROFILE/conf/login-config.xml.
<application-policy name="EncryptedHsqlDbRealm">
<authentication>
<login-module code= "org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
flag = "required">
<module-option name="username">sa</module-option>
<module-option name="password">E5gtGMKcXPP</module-option>
<module-option name="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=DefaultDS
</module-option>
<module-option name="jaasSecurityDomain">
jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword
</module-option>
</login-module>
</authentication>
</application-policy>
Copy to Clipboard Toggle word wrap
O $JBOSS_HOME/docs/examples/jca/hsqldb-encrypted-ds.xml ilustra a configuração da fonte de dados juntamente com a configuração JaasSecurityDomain para o keystore:
<?xml version="1.0" encoding="UTF-8"?>

<!-- The Hypersonic embedded database JCA connection factory config
that illustrates the use of the JaasSecurityDomainIdentityLoginModule
to use encrypted password in the data source configuration.

$Id: hsqldb-encrypted-ds.xml,v 1.1.2.1 2004/06/04 02:20:52 starksm Exp $ -->


<datasources>
...


<application-policy name="EncryptedHsqlDbRealm">
<authentication>
<login-module code="org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
flag = "required">
<module-option name="username">sa</module-option>
<module-option name="password">E5gtGMKcXPP</module-option>
<module-option name="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=DefaultDS
</module-option>
<module-option name="jaasSecurityDomain">
jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword
</module-option>
</login-module>
</authentication>
</application-policy>

<mbean code="org.jboss.security.plugins.JaasSecurityDomain"
name="jboss.security:service=JaasSecurityDomain, domain=ServerMasterPassword">
<constructor>
<arg type="java.lang.String" value="ServerMasterPassword"></arg>
</constructor>
<!-- The opaque master password file used to decrypt the encrypted
database password key -->
<attribute name="KeyStorePass">{CLASS}org.jboss.security.plugins.FilePassword:${jboss.server.home.dir}/conf/server.password</attribute>
<attribute name="Salt">abcdefgh</attribute>
<attribute name="IterationCount">13</attribute>
</mbean>

<!-- This mbean can be used when using in process persistent db -->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic,database=localDB">
<attribute name="Database">localDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>

...

</datasources>
Copy to Clipboard Toggle word wrap

Atenção

Lembre-se de usar o mesmo Salt e IterationCount no MBean que foi usado durante a etapa de geração da senha.

Nota

Quando inicializando um serviço que depende da fonte de dados criptografada, o erro java.security.InvalidAlgorithmParameterException: Parameters missing é exibido quando o seguinte MBean não for inicializado como serviço:
(jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword)
Copy to Clipboard Toggle word wrap
Adicione o seguinte elemento de forma que o MBean inicie antes do banco de dados, conforme a amostra do código hsqldb-encrypted-ds.xml apresentado anteriormente.
<depends>jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword</depends>
Copy to Clipboard Toggle word wrap
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