在 Marklogic 中使用非管理员用户时找不到 http 调用的 404

404 not found for http calls when using non-admin user in Marklogic

我有一组 API 端点,它们使用自定义重写器(使用 rest:rewrite)和自定义错误处理程序(使用 $error:errors)重定向到相应的 Xquery 模块。 HTTP 调用是 GET 和 POST 方法。

当我尝试使用非管理员用户(没有管理员角色的应用程序特定用户)访问 API 时,我收到 404 未找到错误

但是当我将管理员角色分配给该用户时,我能够得到结果。

据我了解,我们不应将管理员角色分配给 ML 中的应用特定用户。

我需要知道我是否缺少要分配给该用户的任何执行权限或角色。或者可以做些什么来解决这个问题?

我怀疑您上传的模块具有文档权限,导致您使用的用户无法执行所需的代码,其中可能还包括重写器和错误处理程序。

检查您正在使用的应用程序服务器后面的模块数据库,并使用 QConsole 检查您加载的模块的权限。将此处提到的角色与您正在使用的用户的角色进行比较。解决方案是对您的模块应用不同的权限,或者为您的用户添加额外的角色。

HTH!