블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
12-31 00:00
 

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

최근에 올라온 글

최근에 달린 댓글


관리 콘솔 패스워드를 암호화 없이 두기에는 좀 불안한 감이 있어서 패스워드 암호화가 필요합니다.
(물론... 아래에서 소개하는 MD5 가 강력한 것은 아니지만 일반 텍스트보다는 낫겠죠...)

환경설정

우선 security-constraint 가 적용된 모듈의 web.xml 을 확인합니다.
[module.war]/WEB-INF/web.xml
<web-app>
   ...
   <login-config>
      <auth-method>DIGEST</auth-method>
      <realm-name>JBoss WEB Console</realm-name>
   </login-config>
    ...
</web-app>

"login-config > auth-method" 를 기존 "BASIC" 에서 "DIGEST" 로 변경합니다.
"login-config > realm-name" 은 나중에 패스워드 만들 때 필요하니 미리 체크해두시기 바랍니다.

[module.war]/WEB-INF/jboss-web.xml
<jboss-web>
    ...
    <security-domain>java:/jaas/digest</security-domain>
    ...
</jboss-web>

security-domain 을 "java:/jaas/digest" 로 변경합니다. 추후 application-policy 로 저장될 이름입니다.

$JBOSS_HOME/server/<CONFIGURATION>/conf/login-config.xml
<application-policy name="digest">
    <authentication>
        <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
                      flag="required">
            <module-option name="usersProperties">props/digest-users.properties</module-option>
            <module-option name="rolesProperties">props/digest-roles.properties</module-option>
            <module-option name="hashAlgorithm">MD5</module-option>
            <module-option name="hashEncoding">rfc2617</module-option>
            <module-option name="hashUserPassword">false</module-option>
            <module-option name="hashStorePassword">true</module-option>
            <module-option name="passwordIsA1Hash">true</module-option>
            <module-option name="storeDigestCallback">org.jboss.security.auth.spi.RFC2617Digest</module-option>
        </login-module>
    </authentication>
</application-policy>

위와 같이 새로운 application-policy 를 추가합니다.

사용자와 롤을 설정할 수 있는 파일 두개도 미리 생성해 놓습니다.
 - $JBOSS_HOME/server/<CONFIGURATION>/conf/props/digest-users.properties
 - $JBOSS_HOME/server/<CONFIGURATION>/conf/props/digest-roles.properties


패스워드 생성 및 설정

JBoss 에서는 패스워드를 생성할 수 있도록 클래스를 제공해줍니다. 아래와 같은 방식으로 패스워드를 생성할 수 있습니다.

# java -cp $JBOSS_HOME/common/lib/jbosssx-server.jar org.jboss.security.auth.spi.RFC2617Digest username realm_name password

예를 들어 username 이 "admin" 이고 패스워드가 "vicki.tistory.com" 이라면 아래와 같은 명령을 통해 패스워드를 생성합니다.
(realm_name 은 위에서 "JBoss WEB Console" 로 정의되었기 때문에 위와 같이 사용합니다.)

# java -cp $JBOSS_HOME/common/lib/jbosssx-server.jar org.jboss.security.auth.spi.RFC2617Digest admin "JBoss WEB Console" vicki.tistory.com
RFC2617 A1 hash: c1b5f8a0d90b1b955661bc5819c7261e

생성된 패스워드를 properties 파일에 설정합니다.

$JBOSS_HOME/server/<CONFIGURATION>/conf/props/digest-users.properties
admin=c1b5f8a0d90b1b955661bc5819c7261e


$JBOSS_HOME/server/<CONFIGURATION>/conf/props/digest-roles.properties
admin=JBossAdmin,HttpInvoker


위와 같이 두개의 설정 파일에 사용자와 롤을 추가한 후 해당 모듈을 재시작하면... 정상적으로 암호화된 패스워드가 적용된 것을 확인하실 수 있습니다.


참고 자료

- http://docs.jboss.org/jbossas/guides/webguide/r2/en/html/ch05.html

Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백