【问题标题】:Admin server error XDMP-AS when creating new role创建新角色时出现管理服务器错误 XDMP-AS
【发布时间】:2014-01-27 17:01:05
【问题描述】:

我创建了一个名为 LDAPGroup 的角色并分配了一个 ldap 组。单击确定按钮后,我收到此错误。

500: internal server error

XDMP-AS: (err:XPTY0004) get-element($col, "sec:role", "sec:role-name",
  $role-name, "SEC-ROLEDNE") 
-- Invalid coercion: $role = sec:role-name("LDAPGroup")

现在我无法在管理界面中打开我的角色页面。有人可以给我解决这个问题吗?

【问题讨论】:

  • 请注意您运行的是哪个版本的机器学习。另外,您是通过 Admin UI 还是通过 XQY、REST 等创建角色的?
  • @wst:我使用的是 7.0-1 版本。我通过 Admin UI 而不是 xqueries 创建了一个角色。我可以看到角色,使用 Sec 功能删除 Qconsole 中的角色。
  • 这是错误。 500: 内部服务器错误 XDMP-AS: (err:XPTY0004) get-element($col, "sec:role", "sec:role-name", $role-name, "SEC-ROLEDNE") -- 无效强制: (fn:doc("marklogic.com/xdmp/roles/4708676013995502179")/sec:role, fn:doc("marklogic.com/xdmp/roles/4720526555240172153")/sec:role) as element()? 在 /MarkLogic/security.xqy 的第 3591 行中 在 get-element("marklogic.com/xdmp/security", "sec:role ", "sec:role-name", sec:role-name("LDAPGroup"), "SEC-ROLEDNE") $col = "marklogic.com/xdmp/security" $elem = "sec:role"

标签: marklogic


【解决方案1】:

根据第二条错误消息,您似乎以某种方式创建了两个具有相同名称的角色。名称应该是唯一的,因此存在问题。如果您在首次创建角色时双击表单提交,则可能会发生这种情况。或者您可能发现了服务器错误。

从您的 cmets 看来,您似乎能够使用 XQuery 和 sec:remove-role 函数删除额外的角色。但是,如果管理 UI 仍然表现异常或者您可以重现该问题,您应该将其报告给 MarkLogic 支持:http://www.marklogic.com/services/support/

【讨论】:

  • 感谢您的回复。我通过检查用户来检查角色。有两个具有相同名称的角色 - “LDAPGoup”。我想我在保存时双击了。我使用 sec:remove-role() 删除其他角色。如果我使用 sec:remove-role() 删除“LDAPGroup”,我会收到错误消息。有什么办法可以去掉重复的角色?
  • 第二个错误为您提供了两个 URI:"marklogic.com/xdmp/roles/4708676013995502179", "marklogic.com/xdmp/roles/4720526555240172153"。打开 qconsole,选择安全数据库和xdmp:document-delete 一个或两个 URI。如果您愿意,还可以使用doc 和URI 检查其中一个或两个。请注意,直接更新安全数据库有点危险,并且不受支持,但我会这样做。
  • 我使用 xdmp:document-delete 删除了这两个角色并重新启动了服务器。现在我可以看到所有的角色。谢谢。我对 LDAP 身份验证有一些疑问。您是否通过 LDAP 进行了任何外部身份验证?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-23
相关资源
最近更新 更多