我必須向安全的Web服務發送SOAP請求,並向我提供了base64格式的客戶端證書。我如何使用它來保護對Java中的Web服務的調用?我正在使用CXF客戶端和Grails 1.3.7。我希望能夠以這樣的加密或證書添加到我的SOAP請求:使用base64證書的WSS4JInInterceptor
Map<String, Object> outProps = new HashMap<String, Object>();
outProps.put(WSHandlerConstants.ENC_PROP_FILE, "client-keystore.properties");
outProps.put(WSHandlerConstants.ENC_KEY_ID, "DirectReference");
outProps.put(WSHandlerConstants.ACTION, WSHandlerConstants.ENCRYPT);
outProps.put(WSHandlerConstants.ENCRYPTION_USER, "myAlias");
outProps.put(WSHandlerConstants.ENC_SYM_ALGO, "http://www.w3.org/2001/04/xmlenc#aes128-cbc");
outProps.put(WSHandlerConstants.ENC_KEY_TRANSPORT, "http://www.w3.org/2001/04/xmlenc#rsa-1_5");
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(outProps);
client.getEndpoint().getOutInterceptors().add(wssOut);
使Web服務可以驗證我的請求。我不太熟悉在soap消息上使用攔截器。
如果base64證書爲pfx格式,該怎麼辦? – aeris