WebScript 需要访客级别的身份验证

WebScript require authentication with guest level

当从Share 调用WebScript 时,总是会出现身份验证对话框。从工作流表单调用 Web 脚本。

userdetails.ftl的一部分:

<#include "/org/alfresco/components/form/controls/common/utils.inc.ftl" />
...
<script>

Alfresco.util.Ajax.jsonGet(
   {
      url: "http://...:8080/alfresco/s/ms-ws/assignments?taskId=" + clearTaskId,
      successCallback:
      {
         fn: function(response)
         {
             if(response.json)
             {
                var json = JSON.parse(response.serverResponse.responseText);
                ...

                for(var i = 0; i < entries.length; i++) {
                    ...
                    var cell1 = row.insertCell(0);
                    var cell2 = row.insertCell(1);
                    var cell3 = row.insertCell(2);
                    var cell4 = row.insertCell(3);
                    var cell5 = row.insertCell(4);

                    cell1.innerHTML = entries[i].entry.jobtitle;
                    cell2.innerHTML = entries[i].entry.firstName;
                    cell3.innerHTML = "";
                    cell4.innerHTML = "";
                    cell5.innerHTML = "";
                }
             }
         },
         scope: this
       },

      failureCallback:
      {
         fn: function(response)
         {
            alert("error!");
         },
         scope: this
      }
});

</script>

我的assignments.get.xml:

<webscript>
    <shortname>Get all assignments for the specific process instance</shortname>
    <description>Returns a list of assignments for the specific process instance</description>
    <url>/ms-ws/assignments?id={taskId}</url>
    <url>/ms-ws/assignments.json?id={taskId}</url>
    <url>/ms-ws/assignments.html?id={taskId}</url>
    <format default="json">extension</format>
    <authentication>user</authentication>
    <transaction>none</transaction>
</webscript>

我尝试将 user 更改为 guest 并将 &guest=true 添加到网络脚本 URL 的末尾,但没有帮助。

如何在这种情况下禁用身份验证对话框?

尝试通过以下方式解决(无效):

authentication 元素中,我添加了值为 admin 的属性 runas:

...
<authentication runas="admin">guest</authentication>
...

在 WebScript url 我添加了 &guest=true

url: "http://...:8080/alfresco/s/ms-ws/assignments?taskId=" + clearTaskId + "&guest=true"

与其在客户端上从 JavaScript 运行 调用 repo 层,不如利用 Share 代理更好,例如 /share/proxy/alfresco/ms-ws/assignments。

如果您直接从客户端访问回购层,则您正在对网络和 Alfresco 部署做出一些可能并不总是正确的假设(即直接访问 Alfresco 回购层的能力)。