Подтвердить что ты не робот

JBoss AS 7.1 - источник данных, как шифровать пароль

В JBoss AS 5 у меня есть источник данных, определенный в * -ds.xml, но введите пароль пользователя/зашифрованный пароль в * -jboss- beans.xml.

Теперь в JBoss AS 7.1 источник данных определяется в файле standalone.xml или domain.xml. Где я могу поместить зашифрованный пароль в AS 7.1?

Другими словами, как безопасный пароль шифруется и защищается в AS 7?

4b9b3361

Ответ 1

В AS7 вы можете использовать SecureIdentityLoginModule для добавления зашифрованного домена пароля. Например, вы можете определить домен безопасности в файле standalone.xml или domain.xml:

<security-domain name="EncryptedPassword">
  <authentication>
    <login-module code="SecureIdentity" flag="required">
      <module-option name="username" value="test"/>
      <module-option name="password" value="encrypted_password"/>
    </login-module>
  </authentication>
</security-domain>

Затем вы можете добавить этот домен безопасности в свой конкретный источник данных, который использует эту комбинацию userid/pwd в файле standalone.xml или domain.xml:

  <datasource ... >
       .....
       <security>
              <security-domain>EncryptedPassword</security-domain>
       </security>
  </datasource>

Чтобы зашифровать сам пароль, вы можете запустить эту команду (пожалуйста, проверьте версии баннера пикетирования и регистрационную банку в вашей конкретной загрузке AS7 для замены соответственно):

java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6.<beta|final>.jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0.<some_version>.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password

Это вернет зашифрованный пароль обратно, который вы можете использовать в своем домене безопасности.

Подробнее о подсистеме безопасности JBoss AS7 здесь. С камней с открытым исходным кодом вы можете увидеть, как код кодировки работает в исходном коде SecureIdentityLogin. В исходном коде вы заметите, что он использует Blowfish для шифрования.

Ответ 2

Ниже приведена полная конфигурация домена безопасности для Jboss AS-7:

     <security-domains>
        <!--  Security Setting --> 
        <security-domain name="encryptedSecurity" cache-type="default">
            <authentication>
                <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                <module-option name="username" value="user_name"/>
                <module-option name="password" value="encrypted_password"/>
                <module-option name="managedConnectionFactoryName" value="jboss.jca:service=LocalTxCM,name=dataSource-1-PoolName,dataSource-2-PoolName"/>
            </login-module>
            </authentication>
        </security-domain>

Ответ 3

В среде CentOS версии 6.3 JBoss-EAP-6.0.0 это работало только с кодом = "SecureIdentity", используя picketbox-4.0.9.Final-redhat-1.jar для шифрования паролей.

<security-domain name="some-ds-EncryptedPassword">
  <authentication>
    <login-module code="SecureIdentity" flag="required">
      <module-option name="username" value="username"/>
      <module-option name="password" value="encrypted_password"/>
    </login-module>
  </authentication>
</security-domain>

code = "SecureIdentityLogin" дает "PB00024: Access Denied: Unauthenticated caller: null".

Источник: https://docs.jboss.org/author/display/AS7/Security+subsystem+configuration

Ответ 4

Для тех, кто заинтересован в том, что это работает на окнах (и в моем случае на JBoss EAP 6.4...)

set JBOSS_HOME=C:\dev\jboss\jboss-eap-6.4
set MYPATH=%JBOSS_HOME%\modules\system\layers\base\org\picketbox\main\picketbox-4.1.1.Final-redhat-1.
jar;%JBOSS_HOME%\modules\system\layers\base\org\jboss\logging\main\jboss-logging-3.1.4.GA-redhat-2.jar;
java -classpath %MYPATH% org.picketbox.datasource.security.SecureIdentityLoginModule SecretPass

Encoded password: 13e0362237c93a9cda89f5b3da271521

Надеюсь, это поможет, Маттео

Ответ 5

создать простой проект с банками ( JBoss-каротаж 3.1.4.GA-RedHat-2.jar picketbox-4.1.1.Final-RedHat-1.jar picketbox-Обще-1.0.0.final-RedHat-3.jar picketbox-infinispan-4.1.1.Final-redhat-1.jar) и запустить пользовательский класс с входными аргументами:

public class Test {

    public static void main(String[] args) throws Exception {
        new org.picketbox.datasource.security.SecureIdentityLoginModule()
                .main(args);

    }

}

Выход будет: закодированный пароль: 3d5bc094c128...