본문 바로가기
JBOSS/No matching credentials in Subject Exception

[ jboss ] No matching credentials in Subject

by 정윤재 2014. 2. 5.

jboss 에서 jndi 설정을 제대로 안한 경우 발생 한다.


나같은 경우는 jboss 에서 지원 하는 


org.jboss.resource.security.SecureIdentityLoginModule 


로 db 비밀번호 설정을 하는 것에서 잘못 된 점이 있었다


비밀번호 설정을 할 경우


login-config.xml  


에서 

<application-policy name="EncryptDBPassword"

 <authentication>  

 <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">  

 <module-option name="username">root</module-option>  

<module-option name="password">6f8e652f571678f2</module-option>  

 <module-option name="managedConnectionFactoryName">jboss.jca:name=MySqlDS,

service=LocalTxCM</module-option>  

</login-module>  

</authentication>  

</application-policy> 


<application-policy name="EncryptDBPassword1">  

<authentication>  

<login-module code="org.jboss.resource.security.SecureIdentityLoginModule" 

flag="required">  

<module-option name="username">root</module-option> 

 <module-option name="password">6f8e652f571678f2</module-option>  

<module-option name="managedConnectionFactoryName">  

 jboss.jca:name=MySqlDS1, service=LocalTxCM  

 </module-option>  

</login-module>  

</authentication>  

</application-policy>


와 같이 설정을 해줘야 하고


mysql-ds.xml (oracle-ds.xml 등~) 에서는


<datasources>  

 <local-tx-datasource>  

<jndi-name>MySqlDS</jndi-name>  

<connection-url>jdbc:mysql://192.168.48.227:3306/systemdatabase</connection-url>  

<driver-class>com.mysql.jdbc.Driver</driver-class>  

<min-pool-size>1</min-pool-size>  

<max-pool-size>20</max-pool-size>  

<security-domain>EncryptDBPassword</security-domain>  

<metadata>  

<type-mapping>mySQL</type-mapping>  

</metadata>  

</local-tx-datasource> 

 <local-tx-datasource>  

<jndi-name>MySqlDS1</jndi-name> 

 <connection-url>jdbc:mysql://192.168.48.227:3306/telephone_element1</connection-url>  

<driver-class>com.mysql.jdbc.Driver</driver-class>  

<min-pool-size>1</min-pool-size>  

<max-pool-size>20</max-pool-size> 

<security-domain>EncryptDBPassword1</security-domain> 

 <metadata> 

 <type-mapping>mySQL</type-mapping>  

</metadata>  

</local-tx-datasource>  

</datasources>  


이렇게 설정이 되어야 한다. 


나 같은 경우는 login-config.xml 에서 


<application-policy name="EncryptDBPassword">  태그를 name 을 같게 해서


여러 개를 설정 해 줘서 난 문제 였다.


해당 문제의 해결은 https://community.jboss.org/thread/64284?tstart=0


를 참고 하였다.





댓글