简体   繁体   English

如何在Java中的Netsuite中使用tokenpassport

[英]How to use tokenpassport in netsuite in java

I have generated Tokenpassort in java but I do not see how to use it in Java. 我已经在Java中生成了Tokenpassort,但没有看到如何在Java中使用它。 All samples I have seen are in C# 我看到的所有样本都在C#中

1) NetSuiteServiceLocator does not take tokenpassport 1)NetSuiteServiceLocator不使用令牌密码

2) NetSuiteService is an interface. 2)NetSuiteService是一个接口。

3) NSPORT takes in passport but NOT tokenpassport. 3)NSPORT领取护照,但不领取通行证。

How to use tokenpassport in Java ( not C# ) ? 如何在Java(不是C#)中使用tokenpassport?

SHORT ANSWER: The token goes into a SOAP Header named "tokenPassport" in the SoapEnvelope. 简短的回答:令牌进入SoapEnvelope中名为“ tokenPassport”的SOAP头。 One way to make that happen is via the javax.xml.rpc.Stub class's setHeader method. 实现该目标的一种方法是通过javax.xml.rpc.Stub类的setHeader方法。

HERE'S WHAT WORKED FOR ME: 这对我有用:

    import org.apache.axis.client.Stub;
    import org.apache.axis.message.SOAPHeaderElement;
    import com.netsuite.webservices.platform.core_2019_1.TokenPassport;    // WSDL version 2019.1
    import com.netsuite.webservices.platform_2019_1.NetSuitePortType; // WSDL version 2019.1`<br/>

    TokenPassport tokenPassport = ...;
    NetSuitePortType port = ...;`<br/>

    String namespace = "urn:messages_2019_1.platform.webservices.netsuite.com"; // WSDL version 2019.1
    SOAPHeaderElement tokenPassportHeader = 
        new SOAPHeaderElement(nameSpace, "tokenPassport", tokenPassport);
    ((Stub) port).setHeader(tokenPassportHeader);

NOTE: The *_2019_1 packages are soap client packages generated by Axis using NetSuite's WSDL for version 2019.1. 注意: * _2019_1软件包是由Axis使用NetSuite的WSDL为2019.1。版生成的soap客户端软件包。

ONE OTHER PITFALL: The algorithm name that NetSoft expects in TokenPassportSignature.algoritm is NOT the same as the name used in java's SecretKeySpec constructor. 另一个方面: NetSoft在TokenPassportSignature.algoritm中期望的算法名称与Java的SecretKeySpec构造函数中使用的名称不同。 For example, the SecretKeySpec uses "HmacSHA256", but TokenPassportSignature expects "HMAC-SHA256". 例如,SecretKeySpec使用“ HmacSHA256”,但TokenPassportSignature需要“ HMAC-SHA256”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM