2015-01-27 7 views
1

WS 보안 SOAP 봉투를 thuird 파티로 보내는 클라이언트를 작성하는 데 CXF ws secuirty를 사용하고 있습니다. 로컬 Tomcat 서버에서 요청을 보내면 200 응답을 얻을 수 있지만 websphere에 배포하면 500 응답을 얻습니다. Tomcat과 Websphere의 봉투와 로그를 비교했습니다. 모든 것이 일치합니다 (서명 알고리즘, 서명 공급자, X509 인증서). 제 3 자와 이야기 할 때, 그들은 RSA 서명이 유효하지 않다고 말했다. 내가 찾을 수있는 유일한 차이점은 "키로 서명"로그입니다. websphere에서 키가 다른 패키지에 의해 제공되는 것 같습니다. 이게 문제 야? 그렇다면 어떻게 수정해야합니까?WS 보안 서명 com.ibm.crypto.provider.RSAPrivateCrtKey

스피어 로그 :

org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - Signature provider:BC version 1.4 
org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - Signing with key: com.ibm.crypto.provider.RSAPrivateCrtKey 
org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - JCA Algorithm: SHA256withRSA 

톰캣 로그 (I의 값의 일부를 제거)

org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - Signature provider:BC version 1.4 
org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - Signing with key: RSA Private CRT Key 
       modulus: --removed value-- 
     public exponent: --removed value-- 
     private exponent: --removed value-- 
       primeP: --removed value-- 
       primeQ: --removed value-- 
     primeExponentP: --removed value-- 
     primeExponentQ: --removed value-- 
     crtCoefficient: --removed value-- 
org.apache.jcp.xml.dsig.internal.dom.DOMSignatureMethod - JCA Algorithm: SHA256withRSA 
+1

안 제 전문 영역,하지만 일부 관련 문제를 이쪽을 봐 - [? IBM의 JCE 공급자 잘못 무엇 (http://stackoverflow.com/questions/4869904/whats-wrong-with-ibms- jce-provider) – ThisClark

답변

0

난을 알았다. Websphere의 기본값은 WS-Security가 BSP (Basic Secuirty Provider)를 준수하도록하는 것입니다. 이 기능을 사용하면 읽은 블로그 게시물 (일부 조사 필요)에 따라 추가 정보가 요청의 KeyInfo에 추가됩니다. 이 코드를 나가는 포트에 추가하여 클라이언트에서 비활성화 할 수 있습니다. ("포트"를 귀하의 포트가 무엇이든 무엇이든 대체하십시오).

Map<String, Object> ctx = ((BindingProvider)port).getRequestContext(); 
ctx.put(WSHandlerConstants.IS_BSP_COMPLIANT, "false");