我正在尝试使用我的私钥对 XML 进行签名,并使用 SOAP UI 它给出了正确的成功响应。
使用下面的代码生成请求
var Authorization = 'Basic' + new Buffer((sapConfig.sap.username + ':' + sapConfig.sap.password) || '').toString('base64'); soap.createClient(__dirname + '/wsdl/SI_CARWORKZ_Customer_Sen_Sync.wsdl', wsdlOptions, function (err, client) { client.setSecurity(new soap.WSSecurityCert(privateKey, publicKey, password, 'utf8')); //client.setSecurity(new soap.ClientSSLSecurity(privateKey, publicKey, ca)); client.SI_CARWORKZ_Customer_Sen_Sync(details, sslOptions, function(err, result, raw, soapHeader) { console.log('%j', 结果); if(_.has(result, "ResponseData") && !_.isEmpty(result.ResponseData.Item)){ var status = _.pluck(result.ResponseData.Item, "Status"); 如果(status.indexOf('E')!= -1){ 返回回调({状态:“错误”,数据:结果}); }别的{ // 在 mongodb 中插入用户 sapLogs.insertCustomers(details.HEADER, function(result){ console.log("客户添加"); 返回回调({状态:“成功”,数据:详细信息}); }) } }别的{ 返回回调({状态:“错误”,数据:[],消息:“出了点问题。”}) } }, {"授权": 授权}); });
但是,当我使用脚本发送签名的 xml 数据时,它会显示错误
验证数字签名时出错。尝试调用方法 com.sap.security.core.ws.wss.tokens.securitytoken.BinarySecurityToken.getSecurityToken() 时出现错误是 java.lang.NullPointerException
我的公钥或私钥有问题吗?我已经从 SOAP UI 中使用的jks文件中
导出了它们。