리눅스에서 JBoss DataSource 패스워드 암호화시 특수문자($)에 주의하시기 바랍니다.


* DataSource 패스워드 암호화 관련 문서


영문: Encrypting Data Source Passwords

http://docs.jboss.org/jbosssecurity/docs/6.0/security_guide/html/Encrypting_Data_Source_Passwords.html 

한글: JBoss JDBC Password encryption 방법

http://misoleaf.blogspot.kr/2013/01/jboss-jdbc-password-encryption.html


* 패스워드 인코딩 시 달러싸인($)로 인해 발생한 문제


예를들어 패스워드가 abc$123이고 아래와 같이 인코딩을 하는 경우


cd $JBOSS_HOME

CP=client/jboss-logging.jar:lib/jbosssx.jar


java -cp $CP org.jboss.resource.security.SecureIdentityLoginModule abc$123

Encoded password: 2202200411c05dbe


윈도우에선 문제가 없지만 리눅스에서는 $1이 변수로 인식되어 문제가 생긴다.

즉, abc$123 이 아닌 abc23을 인코딩한 값이 리턴된다.


java -cp $CP org.jboss.resource.security.SecureIdentityLoginModule abc23

Encoded password: 2202200411c05dbe


리눅스에서는 abc\$123 <- 이렇게 해야한다.


java -cp $CP org.jboss.resource.security.SecureIdentityLoginModule abc\$123

Encoded password: 643b9f06c9ba48f2


* 윈도우에서 패스워드 인코딩 시 특수문자


http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true


The ampersand (&), pipe (|), and parentheses ( ) are special characters that must be preceded by the escape character (^) or quotation marks when you pass them as arguments.



Posted by 天下太平
,