2011-05-10 1 views
1

Java 클라이언트로 웹 서비스를 호출해야합니다. 이 서비스는 메시지 수준의 인증서 (SSL이 아닌 Ws-Security)를 통해 클라이언트를 인증합니다.메시지 보안 및 클라이언트 인증서 인증을 사용하여 웹 보안을 호출하는 방법은 무엇입니까?

this dialog에 상호 인증서 보안을 사용하여 JAX-WS로 웹 서비스를 생성 할 수 있으므로 가능해야합니다.

하지만 클라이언트를 생성 할 수 없습니다. 누구나 아이디어가 있습니까?

답변

1

나는 나 자신에게 그것을을 시도했지만 http://download.oracle.com/docs/cd/E17802_01/webservices/webservices/docs/2.0/tutorial/doc/에서하지 않았다 :

메시지 보안 구성 XWSS

응용 프로그램 서버가 JAR의 모든 JAX-WS를 확보 XWS-Security를 ​​사용하는 데 필요한 파일이 포함되어 사용 그러나 샘플 응용 프로그램을 보려면 독립형 Java WSDP 번들을 다운로드하여 설치해야합니다. Java WSDP는 http://java.sun.com/webservices/downloads/webservicespack.html에서 다운로드 할 수 있습니다.

는 클라이언트 측에서 다음과 같이 XWSS를 사용하여 기존 JAX-WS 응용 프로그램에 메시지 보안을 추가하려면 :

  • 은 클라이언트 보안 구성을 만듭니다. 클라이언트 보안 구성 파일은 클라이언트 응용 프로그램에 사용될 메시지 보안 조작의 순서와 유형을 지정합니다.

    작성에 대한 자세한 정보 및 보안 구성을 이해하고 설정 SecurityEnvironmentHandlers를 들어
     <xwss:Sign id="s" includeTimestamp="true"> 
          <xwss:X509Token encodingType="http://docs.oasis- 
           open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" 
              valueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- 
           x509-token-profile-1.0#X509SubjectKeyIdentifier" 
              certificateAlias="xws-security-client" 
              keyReferenceType="Identifier"/> 
         </xwss:Sign> 
    
        </xwss:SecurityConfiguration> 
    </xwss:Service> 
    <xwss:SecurityEnvironmentHandler> 
        simple.client.SecurityEnvironmentHandler 
    </xwss:SecurityEnvironmentHandler> 
    

    , 제발 예를 들어, 간단한 보안 구성은 디지털 서명 작업은 다음과 같습니다 수행 http://java.sun.com/webservices/docs/1.6/tutorial/doc/index.html에있는 Java Web Services Developer Pack 1.6 자습서를 참조하십시오.

  • 클라이언트 코드에서 생성 된 보안 구성으로 초기화 된 XWSSecurityConfiguration 개체를 만듭니다. 다음은 클라이언트 파일에서 사용할 코드의 예입니다. 이 코드를 사용하는 완전한 파일의 예를 보려면 \ jaxws2.0 \ simple-doclit \ src \ simple \ client \ 디렉토리에있는 예제 클라이언트를보십시오. XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION 속성을 사용하여 RequestContext

    FileInputStream f = new FileInputStream("./etc/client_security_config.xml"); 
    XWSSecurityConfiguration config = SecurityConfigurationFactory.newXWSSecurityConfiguration(f); 
    
  • 설정 보안 구성 정보를 표시합니다. 이 코드를 사용하는 완전한 파일의 예를 보려면 \ jaxws2.0 \ simple-doclit \ src \ simple \ client \ 디렉토리에있는 예제 클라이언트를보십시오. 당신이 XWS-보안을 추가에 관계없이 클라이언트를 작성 한 경우와 마찬가지로

    // put the security config info 
    ((BindingProvider)stub).getRequestContext().put(
        XWSSecurityConfiguration.MESSAGE_SECURITY_CONFIGURATION, 
        config); 
    
  • 는 스텁에 메소드를 호출합니다. 에서 응용 프로그램에 대한 예는 \ jaxws2.0 아래 그림과 같이 \ SRC \-doclit 간단한 간단한 \ 클라이언트 \ 디렉토리는 : \ 응답 답을 찾기 위해 나에게 도움이 있기 때문에 내가 동의

    Holder<String> hold = new Holder("Hello !"); 
    stub.ping(ticket, hold); 
    
+0

감사합니다. 그러나 netbeans를 사용하면 WSDL에서 생성 할 수 있습니다. 트러스트 스토어가 공개 키이고 키가 비공개 + 공개 키를 저장한다는 것을 알지 못했습니다. –