Xquery 搜索:搜索在查询控制台中返回结果,但在http get从应用程序中命中时不返回结果?
我这里的情况很奇怪。我正在尝试构建一个向MarkLogic服务器发送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
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