[JBossWS] 웹 서비스에 간단하게 인증 추가하기



어쩌다보니 웹 서비스 업무가 할당 되어서 인증까지 확인해야 하는 신세가 되었습니다.


다행히 회사에서 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



[Listring. 4] [JBOSS_HOME]/server/[CONFIGURATION]/conf/props/jboss-roles.properties


#아이디=Role

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 이 인증을 하라고 합니다.







아이디와 패스워드를 입력하고 확인을 누르면~ 끝입니다.






댓글

가장 많이 본 글