Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest 是否有任何方法可以在不使用身份验证选项的情况下对调度任务中的xdmp:httpput函数进行身份验证?_Rest_Http_Scheduled Tasks_Marklogic - Fatal编程技术网

Rest 是否有任何方法可以在不使用身份验证选项的情况下对调度任务中的xdmp:httpput函数进行身份验证?

Rest 是否有任何方法可以在不使用身份验证选项的情况下对调度任务中的xdmp:httpput函数进行身份验证?,rest,http,scheduled-tasks,marklogic,Rest,Http,Scheduled Tasks,Marklogic,有没有办法,我们将获得schedule task的身份验证,以验证schedule task中的xdmp:http put函数。 例如:= 计划任务每分钟运行一个xqyfile,该文件包含一个http:put方法来调用rest服务 let $url := fn:concat('http://',xdmp:hostname($host),':',$PORT,'/v1/resources/example') return xdmp:http-

有没有办法,我们将获得schedule task的身份验证,以验证schedule task中的xdmp:http put函数。
例如:= 计划任务每分钟运行一个xqyfile,该文件包含一个http:put方法来调用rest服务

let $url  := 
fn:concat('http://',xdmp:hostname($host),':',$PORT,'/v1/resources/example')   
        return
                xdmp:http-put($url,
                    <options xmlns="xdmp:http"> 
                        <data>{
                           xdmp:quote($data)
                       }</data> 
                 </options> 
let$url:=
fn:concat('http://',xdmp:hostname($host),':',$PORT,'/v1/resources/example'))
返回
xdmp:httpput($url,
{
xdmp:quote($data)
} 
其中,$port是rest服务端口,$host是集群中的主机
这是否可以从schedule任务中获取自动验证并将其传递给xdmp:http put方法。这是必需的,因为密码依赖于环境,我们将不知道密码。

如果您希望能够在不进行身份验证的情况下调用端点,您可以配置具有身份验证的appserver并设置默认用户。有e显而易见的安全注意事项,因此您可能为此目的设置了特定的appserver,并为该默认用户配置了最少的角色和权限

另一种选择是使用在安全数据库中安全地存储身份验证信息

用于身份验证的凭据id。这是提供身份验证凭据的首选方法,因为它们安全地存储在安全数据库中。指定凭据id时,其他身份验证信息字段应保留为空,并将被忽略。有关获取凭据id的详细信息,请参阅用法编号见下文

这样,您就可以更新每个系统上的凭据,并避免在代码中硬编码身份验证信息

如果您尝试调用的端点是MarkLogic REST端点,那么您可以让计划任务模块导入REST模块并调用其get或post方法,而不是通过HTTP调用:

import module namespace m = "http://marklogic.com/rest-api/resource/example" 
  at "/marklogic.rest.resource/example/assets/resource.xqy";
let $context := map:map()
let $params := map:map()
let $input := ()
return m:post($context,$params, $input)

如果您希望能够在不进行身份验证的情况下调用终结点,则可以配置具有身份验证的appserver并设置默认用户。存在明显的安全注意事项,因此您可以为此目的设置特定的appserver,并为该默认用户配置最小的角色和权限

另一种选择是使用在安全数据库中安全地存储身份验证信息

用于身份验证的凭据id。这是提供身份验证凭据的首选方法,因为它们安全地存储在安全数据库中。指定凭据id时,其他身份验证信息字段应保留为空,并将被忽略。有关获取凭据id的详细信息,请参阅用法编号见下文

这样,您就可以更新每个系统上的凭据,并避免在代码中硬编码身份验证信息

如果您尝试调用的端点是MarkLogic REST端点,那么您可以让计划任务模块导入REST模块并调用其get或post方法,而不是通过HTTP调用:

import module namespace m = "http://marklogic.com/rest-api/resource/example" 
  at "/marklogic.rest.resource/example/assets/resource.xqy";
let $context := map:map()
let $params := map:map()
let $input := ()
return m:post($context,$params, $input)
import module namespace m = "http://marklogic.com/rest-api/resource/example" 
  at "/marklogic.rest.resource/example/assets/resource.xqy";
let $context := map:map()
let $params := map:map()
let $input := ()
return m:post($context,$params, $input)