如何使用ntlm身份验证从navision webservice生成源文件

时间:2018-01-17 11:29:33

标签: wsimport navision ntlm-authentication

我正在尝试使用wsimport从Navision Web服务(NTLM身份验证)生成源文件.Below是命令 wsimport -XdisableSSLHostnameVerification -d generated -s source -Xauthfile auth2.txt -keep“https://XXX.XXX.XXX.XXX:XXXX/XXXell/WS/XXXXLimited/Page/XXXXXOrder

在auth.txt中

HTTP [秒]://用户:密码@主机:端口//

我无法生成源文件。请帮助任何可以提供帮助的链接或示例

任何快速帮助都会得到满足......

2 个答案:

答案 0 :(得分:0)

只需要让Navision管理员更改配置以使用Basic Auth:

How to: Use an Access Key for SOAP and OData Web Service Authentication

干杯

答案 1 :(得分:0)

该线程很旧,但是如果有人经过我,我会分享我的经验。

对于NTLM,您不需要需要文件auth.txt

TL; TR

如果您使用的Java版本大于tools.jar com.sun.tools.internal.ws.WsImport,请先使用"-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"并添加Java选项1.8.0_181

长版

在Java 1.8.0_181之前,默认情况下已启用NTLM,但现在情况不再如此(我使用的当前版本为1.8.0_222“)。请参见https://stackoverflow.com/a/54628051/349228

要能够通过wsimport工具使用NTLM,我必须手动使用tools.jar

java "-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts" -cp %JAVA_HOME%\lib\tools.jar com.sun.tools.internal.ws.WsImport -p "my.target.package.name" -d . -keep -encoding UTF-8 "http://navisionhost:7047/DynamicsNAV110/WS/Test 01/Page/MyPage"

NTLM的关键部分是2个Java选项"-Dhttp.auth.ntlm.domain=MYDOMAIN" "-Djdk.http.ntlm.transparentAuth=allHosts"。其余部分与本机工具调用非常接近,除了我们从此jar %JAVA_HOME%\lib\tools.jar手动运行Main Java类。