You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MarkLogic调用xdmp:http-put报XDMP-INVAUTHMETH无效认证方法错误

XDMP-INVAUTHMETH报错原因

xdmp:http-put 等内置HTTP客户端函数的authentication参数不支持application-level作为取值。
application-level是MarkLogic HTTP App Server自身的服务端认证模式配置项,不属于标准HTTP认证方法范畴,直接将服务端的配置项名称填入客户端请求的认证方法参数,就会触发「无效授权方法」报错。

MarkLogic内置HTTP客户端支持的合法认证方法取值仅包括:

  • basic:HTTP基础认证
  • digest:HTTP摘要认证
  • digestbasic:优先尝试摘要认证,失败后自动回退到基础认证
  • negotiate:Kerberos/SPNEGO协商认证
  • cert:客户端证书认证
修复步骤
  1. 登录MarkLogic管理控制台,找到8016端口对应的App Server配置项,查看其实际启用的标准HTTP认证协议(应用层级认证模式下,底层默认一般启用digest认证)
  2. 将请求代码中<authentication>标签的method属性替换为匹配的标准取值,若无法确认具体是digest还是basic,直接填digestbasic即可让客户端自动适配。
  3. 修正后的参考代码如下:
xquery version "1.0-ml";
xdmp:http-put("http://example.com:8016/v1/documents?uri=my.xml",
     <options xmlns="xdmp:http">
       <authentication method="digestbasic">
         <username>xxxx</username>
         <password>yyyyy</password>
       </authentication>
       <headers>
         <Content-type>application/xml</Content-type>
         <Accept>application/xml</Accept>
       </headers>
     </options>,
     <mydata>this is xml for the PUT body</mydata>)

补充说明:App Server配置的「应用层级认证」是指认证通过后的权限校验逻辑可由应用层代码接管,不代表HTTP请求阶段使用了自定义的非标准认证协议,请求握手阶段依然遵循标准HTTP认证规范。

内容的提问来源于stack exchange,提问作者Balan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 22:57:25