[JBossWS] 웹 서비스에 간단하게 인증 추가하기
WEB/JBossAS / 2010. 5. 13. 15:58
어쩌다보니 웹 서비스 업무가 할당 되어서 인증까지 확인해야 하는 신세가 되었습니다.
다행히 회사에서 JBoss 책을 발견하고 바로 작업을 진행하였습니다.
1. web.xml 에서 인증을 추가할 웹 서비스 관련 설정을 확인합니다.
[Listing. 1] [ContextRoot]/WEB-INF/web.xml
현재 웹 서비스는 /WorkflowWebServices 로 배포된 상태입니다.
2. JBoss 의 login-config.xml 설정에서 JBossWS 관련 application-policy 를 확인합니다.
[Listring. 2] [JBOSS_HOME]/server/[CONFIGURATION]/conf/login-config.xml
기존에 설정되어 있던 login-config.xml 을 이용하려 합니다.
기본적으로 JBoss 설치 시에 있는 JBossWS application-policy 를 이용하려 합니다.
인증되지 않은 사용자에 대한 설정은 잘 모르니 주석처리하였습니다.
이제 위의 application-policy 에 정의된 users 와 roles properties 를 수정합니다.
[Listring. 3] [JBOSS_HOME]/server/[CONFIGURATION]/conf/props/jboss-users.properties
#아이디=패스워드
vicki=vickivicki
vicki=vickivicki
[Listring. 4] [JBOSS_HOME]/server/[CONFIGURATION]/conf/props/jboss-roles.properties
#아이디=Role
vicki=webservice
vicki=webservice
jboss-users.properties 에 사용자 아이디와 비밀번호를 설정하고, jboss-roles.properties 에 사용자가 어떤 롤을 갖는지 설정합니다.
3. jboss-web.xml 을 수정합니다.
[Listing. 5] [ContextRoot]/WEB-INF/jboss-web.xml
jboss-web 설정에 <security-domain> 엘리먼트에 위에서 확인하였던 application-policy 이름을 설정합니다.
<security-domain>java:/jaas/[application-policy name]<security-domain>
4. web.xml 을 수정합니다.
[Listing. 6] [ContextRoot]/WEB-INF/web.xml
<security-constraint>: 어떤 접속에 어떤 권한으로 인증 절차를 처리할지 설정
<login-config> : 어떤 방식으로 인증을 처리할지를 설정
<security-role> : 어떤 권한을... (-ㅁ-;;; 잘 모르겠습니다;;;;)
5. 테스트
JBoss 를 재시작하면 기존에 그냥 접속되었던 웹 서비스 WSDL 이 인증을 하라고 합니다.
아이디와 패스워드를 입력하고 확인을 누르면~ 끝입니다.