2011-09-19 3 views
3

응답을 제공하기 전에 내부 인증을 위해 호출자로부터 사용자 이름과 암호를 받아야하는 Java 웹 서비스를 작성 중입니다. 표준 방법 (또는 모범 사례)은 무엇입니까? SOAP 헤더에 있거나 메시지 매개 변수 중 하나로 제공해야합니까? 이를위한 코드 예제는 어디에서 찾을 수 있습니까? 고맙습니다.웹 서비스 호출에서 사용자 이름과 암호 사용

+0

어떤 WS 스택을 사용하고 있습니까? – Santosh

답변

0

일반적으로 사용자 이름과 비밀번호는 http 헤더에서 일부로 전송됩니다 .JAX-WS는 서버에서 이러한 속성을 쉽게 처리 할 수 ​​있도록 상수 USERNAME_PROPERTY 및 PASSWORD_PROPERTY를 제공합니다.이 값에 액세스하려면 http 핸들러를 작성해야합니다.

void authenticate(HttpExchange ex){ 
    Headers headers = ex.getRequestHeaders(); 
headers.get(BindingProvider.USERNAME_PROPERTY) 
headers.get(BindingProvider.PASSWORD_PROPERTY) 
} 

Httphandler의 public void handle(HttpExchange ex) 메서드에서이 메서드를 호출하십시오.

1

SOAP 헤더의 보안 정보를 제공 WS-Security를 사용하는 사용자 이름과 암호를 제공하는 표준 방법 :

<SOAP-ENV:Header> 
    <wsse:Security SOAP-ENV:mustUnderstand="1" 
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
    <wsse:UsernameToken 
     wsu:Id="UsernameToken-29477163" 
     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
     <wsse:Username>username</wsse:Username> 
     <wsse:Password>verySecret</wsse:Password> 
    </wsse:UsernameToken> 
    </wsse:Security> 
</SOAP-ENV:Header> 

WSS4J 자바에 대한 WS-보안 헤더를 구현합니다.

관련 문제