2014-07-08 3 views
0

웹 서비스에서 일부 데이터를 가져와야하는 Java 응용 프로그램을 빌드하고 있습니다. wsdl 파일과 필요한 모든 정보가 제공되었지만 권한이 부여되지 않은 401 코드는 다시 제공됩니다. IIS에서 웹 서비스 디렉토리가 익명 인증을 가져야하므로 웹 자격 증명을 전달해야한다는 웹 서비스 담당자의 말을 들었습니다. 나는 꽤 오랫동안 해결책을 찾기 위해 노력해 왔지만 사용자 이름과 암호를 직접 전달하지 않는 것을 찾지 못했습니다. 내가해야 할 일은 사용자가 윈도우에 로그인 한 자격 증명을 사용하여 사용자 이름과 암호를 입력하지 않아도된다는 것입니다. 누구도이 경험이 있습니까? SPNEGO라는 somethig를 찾았지만 사용자 이름과 암호도 직접 사용합니다.Windows 자격 증명이있는 Java 클라이언트에서 IIS 웹 서비스 보호

도움 주셔서 감사합니다.

답변

0

당신은 어떤 웹 서비스 프레임 워크를 쓰지 않았습니까 (직접 손으로 비누 요청을 보내거나 보내지 않는다고 가정).

웹 서비스가 HTTP 기본 인증을 통해 보안이 이루어진다 고 가정합니다.

내가 당신을 것, 내가이 경우 경우 (참조 : http://www.soapui.org/SOAP-and-WSDL/authenticating-soap-requests.html), 귀하의 웹 서비스에 대해이 기능을 지원하며, 확인 테스트 도구 soapUI와 빠른 테스트 할 것

당신이 만약을 성공하려면 http-header 영역에서 사용자와 암호를 전달해야합니다. (여기에 "클라이언트"부분을 참조하십시오. 예제 값은)

0

죄송합니다. 축을 사용하고 있다는 것을 잊어 버렸습니다. 그럼에도 불구하고 결국은 기본 인증을 사용하지 않고 NTLM이라고 밝혀 짐에 따라 서비스에 대한 인증을 마침내 관리했습니다. 그래서 지금은 같은 것을 할 :

BAWebServiceLocator locator = new BAWebServiceLocator(getEngineConfiguration()); 
    BAWebServiceSoap baWebServiceSoap = locator.getBAWebServiceSoap(url); 

    ((Stub)baWebServiceSoap).setUsername(props.getProperty("username")); 
    ((Stub)baWebServiceSoap).setPassword(props.getProperty("password")); 

그래서 난 아직도 내 사용자 이름과 암호를 전달해야합니다. 내가하고 싶은 것은 윈도우에 로그인 한 인증서를 사용하는 것입니다. 어떤 아이디어?