Реализация взаимной аутентификации JBoss - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь подключить развернутое приложение JBoss 5.2 к удаленному серверу (M2M), используя взаимную аутентификацию по SSL. До сегодняшнего дня я использую аутентификацию на основе пользователя / пароля. Насколько я понял, чтобы заставить работать рукопожатие, я должен отправить свой сертификат клиента на удаленный сервер, к которому я хочу получить доступ. Итак, я определил в своем источнике данных:

<tx-connection-factory>
    <jndi-name>ApplicationDS</jndi-name>
    <use-java-context>true</use-java-context>
    <xa-transaction/>
    <rar-name>xxx.rar</rar-name>
    <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition>
    <config-property name="ServerName" type="java.lang.String">MYRemoteServer</config-property>
    <config-property name="ConnectionURL" type="java.lang.String">tcp://10.10.10.10</config-property>
    <config-property name="PortNumber" type="java.lang.String">9999</config-property>
    <config-property name="TraceLevel" type="java.lang.Integer">0</config-property>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>20</max-pool-size>
    <security-domain>Test_Mutual_SSL</security-domain>
  </tx-connection-factory>

Я изменил свой login-config.xml следующим образом:

<application-policy name="Test_Mutual_SSL">
        <authentication>
            <login-module code="org.jboss.security.auth.spi.BaseCertLoginModule" flag="required">  
                <module-option name="password-stacking">useFirstPass</module-option>  
                <module-option name="securityDomain">java:/jaas/SSL</module-option>  
                <module-option name="verifier">org.jboss.security.auth.certs.AnyCertVerifier</module-option>  
            </login-module>  
        </authentication>

Я ссылался на хранилище ключей, содержащее сертификат клиента, в Test_Mutual_SSLdomain-service.xml в каталог развертывания следующим образом:

<server>
    <mbean code="org.jboss.security.plugins.JaasSecurityDomain" name="jboss.security:service=SecurityDomain">
        <constructor>
            <arg type="java.lang.String" value="Test_Mutual_SSL"/>
        </constructor>
        <attribute name="KeyStoreURL">
            ${jboss.server.home.dir}/conf/server.truststore
        </attribute>
        <attribute name="KeyStorePass">serverpass</attribute>
        <depends>jboss.security:service=JaasSecurityManager</depends>
    </mbean>
</server>

Тем не менее, мне не повезло, что все заработало. Я получаю ошибку:

WARN  [org.jboss.security.auth.spi.BaseCertLoginModule] Don't know how to obtain X509Certificate from: class java.lang.String

Любая помощь очень признательна.

...