1

私はmeteor.jsを使用しています。WSSecurityCert を使用する Web サービスの関数を呼び出そうとしています。私はopensslを使用して署名付きのキーペアを作成し、公開キーをサーバー管理者に送信して、キーストアに含めるようにしました。公開鍵も送られてきましたが、それをコードやアプリケーションのどこに含めればよいかわかりません。

私のコードは次のとおりです。

if (Meteor.isServer) {
Meteor.methods({
    getVouchers: function(){

        var fs = Npm.require('fs');
        var soap = Npm.require('soap');
        Npm.require('ursa');
        var base = process.env.PWD;

        var publicKey = fs.readFileSync(base + "/cert.pem", "utf8");
        var privateKey = fs.readFileSync(base + "/key.pem", "utf8");
        var password = "myPassPhrase";

        var url = 'http://www.smartcallesb.co.za:8091/SmartcallServices2/SmartloadService?wsdl';

        try
        {
            var wsSecurity = new soap.WSSecurityCert(privateKey, publicKey, password, 'utf8');
            var client = Soap.createClient(url);
            client.setSecurity(wsSecurity);
            //var result = client.SmartloadService.SmartloadServicePort.getDealerBalance(); //getAllNetworks
            var result = client.getDealerBalance();
            console.log(result)
        }
        catch (err)
        {
            console.log(err)
        }
        console.log("reached end")

    }
});}

実行すると、次のエラーが表示されます。

{ [Error: Soap method call failed [soap-method]]
error: 'soap-method',
reason: 'Soap method call failed',
reason: 'Soap method call failed',
details:
{ [Error: soap:Client: Unexpected wrapper element getDealerBalance found. 
Expected {http://www.smartcall.co.za/2010/12/service}getDealerBalance.]
{http://docs.oasis-open.org/ws-sx/ws-securitypolicy requirement
/200702}AsymmetricBinding: The transform algorithms do not match the
requirement.....

これは、サーバー管理者から送信されたホスト公開鍵がアプリケーションに含まれていないことが原因である可能性があります。または、これを修正/修正するにはどうすればよいですか?

4

0 に答える 0