Xquery 搜索:搜索在查询控制台中返回结果,但在http get从应用程序中命中时不返回结果?

Xquery 搜索:搜索在查询控制台中返回结果,但在http get从应用程序中命中时不返回结果?,xquery,marklogic,roxy,Xquery,Marklogic,Roxy,我这里的情况很奇怪。我正在尝试构建一个向MarkLogic服务器发送http get请求的应用程序。它点击执行search:search(“”)的XQuery代码。我正在将空查询传递给搜索,以便返回默认的相关结果。 我正在使用Roxy进行部署。 当我通过命令调用典型的Roxy部署函数时- ml local deploy content. 它加载所有文档,稍后当我点击localhost:7040时,我得到了预期的结果。到目前为止还不错。 现在,我重写了Roxy的现有方法deploy_cont

我这里的情况很奇怪。我正在尝试构建一个向MarkLogic服务器发送http get请求的应用程序。它点击执行
search:search(“”)的XQuery代码。我正在将空查询传递给搜索,以便返回默认的相关结果。
我正在使用Roxy进行部署。 当我通过命令调用典型的Roxy部署函数时-

ml local deploy content.  
它加载所有文档,稍后当我点击localhost:7040时,我得到了预期的结果。到目前为止还不错。
现在,我重写了Roxy的现有方法deploy_content,并定义了调用XQuery函数的新方法,该函数执行
xdmp:document-load()
将所有数据加载到内容数据库。以下是代码片段-

declare function loadTS:load($path) {
    let $result :=
        for $d in xdmp:filesystem-directory($path)//dir:entry
            let $log := xdmp:log(fn:concat("$d-->",xdmp:describe($d)))
            return xdmp:document-load($d//dir:pathname,
                <options xmlns="xdmp:document-load">
                    <uri>{fn:concat("/",$d//dir:filename)}</uri>
                    <permissions>{xdmp:default-permissions()}</permissions>
                    <format>xml</format>
                    <collections>
                        <collection>all</collection>
                    </collections>
                </options>)
     return $result
};
是否有获取此用户角色下所有默认权限的功能。
这是用于app server的用户,因为它更像是普通安装。
用于查询控制台的用户是管理员。
我对其中一个加载文档运行了命令
xdmp:document-get-permissions()
,但它返回了空序列。
xdmp:document get permissions(“/a-ha+Take on Me.xml”)


身份验证方法=应用程序级别

你说了很多,但你从来没有提到过很多关于安全方面的事情:

  • 与您一起部署的用户
  • 该用户角色下列出的默认权限
  • 用于应用程序服务器的用户
  • 用于查询控制台的用户
  • 附加到示例文档的实际权限
为了快速跟踪此帮助,我将假设安装了非常普通的ML和Roxy:

  • 您可能将查询控制台用作管理员
  • 您可能正在使用
  • Roxy的部署人员是管理员。您可能正在通过使用其他用户 应用服务器
上面的代码使用用户通过Roxy的默认权限。如果是admin,则可能没有默认权限,因为admin规避了几乎所有的安全性(甚至包括对文档的写入权限)

值得注意的是: 在其中一份文件上

回答以下问题:您的应用程序用户是否具有文档的读取权限? 如果没有,请调整上述方法以插入具有更合适权限的文档)

不需要朗金?这是因为您已将登录设置为应用程序级别,并且可能仅使用Roxy的默认用户。需要认证吗?更改为在Roxt xml配置中摘要和定义更多用户/角色

需要什么角色? 嗯,您至少需要一个具有trights的用户(非管理员)才能使用您的应用程序以及对文档的读写访问。解释得太多会产生太多的假设。您需要了解安全模型并做出自己的选择。但作为一个例子,创建带有密码和角色“user1”的“user1”,并按照Roxy的定义为应用程序用户授予该角色的访问权限,并将身份验证设置为digest。现在你有了身份验证和一个用户,可以用密码使用你的应用程序。更改上面的文档加载脚本,以将加载文档的读/写权限授予user1角色

现在,您有了一个具有以下功能的应用程序:

  • 要登录的用户
  • 营养化
  • 加载的可由该用户读取(和修改)的Doucments
这将为您提供绝对的基础知识。它还没有准备好生产,因为您的默认用户(非登录应用程序用户)应该具有最低权限,而其他权限则移动到您的登录用户


不足以解决问题?回答我上面提到的问题,人们会有更多的帮助。

你说了很多,但你从来没有提到过很多关于安全方面的事情:

  • 与您一起部署的用户
  • 该用户角色下列出的默认权限
  • 用于应用程序服务器的用户
  • 用于查询控制台的用户
  • 附加到示例文档的实际权限
为了快速跟踪此帮助,我将假设安装了非常普通的ML和Roxy:

  • 您可能将查询控制台用作管理员
  • 您可能正在使用
  • Roxy的部署人员是管理员。您可能正在通过使用其他用户 应用服务器
上面的代码使用用户通过Roxy的默认权限。如果是admin,则可能没有默认权限,因为admin规避了几乎所有的安全性(甚至包括对文档的写入权限)

值得注意的是: 在其中一份文件上

回答以下问题:您的应用程序用户是否具有文档的读取权限? 如果没有,请调整上述方法以插入具有更合适权限的文档)

不需要朗金?这是因为您已将登录设置为应用程序级别,并且可能仅使用Roxy的默认用户。需要认证吗?更改为在Roxt xml配置中摘要和定义更多用户/角色

需要什么角色? 嗯,您至少需要一个具有trights的用户(非管理员)才能使用您的应用程序以及对文档的读写访问。解释得太多会产生太多的假设。您需要了解安全模型并做出自己的选择。但作为一个例子,创建带有密码和角色“user1”的“user1”,并按照Roxy的定义为应用程序用户授予该角色的访问权限,并将身份验证设置为digest。现在你有了身份验证和一个用户,可以用密码使用你的应用程序。更改上面的文档加载脚本,以将加载文档的读/写权限授予user1角色

现在,您有了一个具有以下功能的应用程序:

  • 要登录的用户
  • 营养化
  • 加载的可由该用户读取(和修改)的Doucments
这个w
ml.app-role:xyz-role