WebScript要求使用来宾级

时间:2017-03-16 04:09:44

标签: rest authentication spring-security alfresco alfresco-webscripts

当从共享调用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添加到网络脚本网址的末尾,但它没有帮助。

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

我将非常感谢这些信息。谢谢大家。

2 个答案:

答案 0 :(得分:3)

不是通过在客户端上运行的JavaScript调用repo层,而是通常更好地利用Share代理,例如/ share / proxy / alfresco / ms-ws / assignments。

如果您直接从客户端访问repo层,那么您对网络和Alfresco部署做出了一些假设,这些假设可能并非总是如此(即能够直接访问Alfresco repo层)。

答案 1 :(得分:0)

试图通过以下方式解决(不起作用):

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

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

在WebScript网址中,我添加了&guest=true

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