Реализация взаимной аутентификации JBoss
Я пытаюсь подключить развернутое приложение 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
Любая помощь очень ценится.