1

我正在尝试使用我的私钥对 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文件中
导出了它们。

4

0 回答 0