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

在Marklogic中使用非管理员用户时,找不到http调用的404,http,url-rewriting,xquery,marklogic,marklogic-10,Http,Url Rewriting,Xquery,Marklogic,Marklogic 10,我有一组API端点,它们使用自定义重写器(使用rest:rewrite)和自定义错误处理程序(使用$error:errors)重定向到相应的Xquery模块。HTTP调用包括GET和POST方法 当我尝试使用非管理员用户(没有管理员角色的特定于应用程序的用户)访问API时,我遇到了404未找到错误 但是当我把管理员角色分配给这个用户时,我就能得到结果 根据我的理解,我们不应该在ML中将管理员角色分配给特定于应用程序的用户 我需要知道我是否缺少要为此用户分配的任何执行特权或角色。或者可以采取什么措

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

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

但是当我把管理员角色分配给这个用户时,我就能得到结果

根据我的理解,我们不应该在ML中将管理员角色分配给特定于应用程序的用户


我需要知道我是否缺少要为此用户分配的任何执行特权或角色。或者可以采取什么措施来解决此问题?

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

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


我们已经为应用程序创建了一个作为应用程序开发人员的角色,用户映射到此角色。包括重写器文件在内的模块具有安全和临时管理员角色,因此,我将其添加到app developer角色中。但我仍然得到了相同的错误。请查看上面的评论。我建议不要将安全和临时管理角色授予app developer,而是至少为您的模块分配app developer的执行权限。在某些情况下,阅读权限也是必需的,因此最容易将其添加到所有模块中。前面关于将权限分配给我的模块的评论有效!非常感谢你!我们是否还需要在特定于应用程序的文档数据库中添加数据文件的权限?没有权限我无法访问它。