我如何更新露天分享网站?

how can i update an alfresco share site?

我正在尝试更新我在 Alfresco 中使用共享脚本创建的网站(只需更改其名称),但我收到 401 响应。我确定我的登录名和密码是正确的。

代码:

s = requests.Session()
data = {'username':"admin", 'password':"admin"}
url = "http://127.0.0.1:8080/share/page/dologin"
r = s.post(url, data=data)
if (r.status_code != 200) :
    print "Incorrect login or password "
    url1 = "http://127.0.0.1:8080/alfresco/service/api/sites/OdooSite50"
    print url_alfresco

    jsonString = JSONEncoder().encode({
        "title" : name
    })

    headers = {'content-type': 'application/json',"Accept":"application/json"}
    site = s.put(url1,headers=headers,data=data)

    if (site.status_code != 200) :
        print " Error while creating site"
        print site.status_code

我在第二部分遇到了错误。登录部分工作没有任何问题。 你能告诉我我做错了什么吗?

这是因为您使用不同的上下文进行查询。

Alfresco 堆栈由多个部分组成:

  • alfresco.war
  • share.war
  • solr.war

如果我们忘记了 solr 部分并专注于您的问题,您有:

  • a content repository (alfresco) 其中包含 alfresco
  • 的核心服务
  • 一个 Web 应用程序(共享),其中包含您的应用程序的 Web ui 并与内容存储库通信以执行某些操作

他们的背景不同,生活也不同。一个可以在一台服务器上,另一个可以在另一台服务器上。

所以这意味着,当您进行身份验证时,您是在 share 上下文中进行的:

http://127.0.0.1:8080/share/page/dologin

并且当您尝试更新您的网站时,您是在 alfresco 上下文中进行的(您尚未在其中进行身份验证):

http://127.0.0.1:8080/alfresco/service/api/sites/OdooSite50

然后我看到两个解决方案:

  1. 您在 alfresco 上下文(网络服务 alfresco/s/api/login)上进行身份验证,然后您将通过身份验证来调用您的 alfresco 站点服务
  2. 您通过共享代理:/alfresco/service/api/sites 变为 /share/proxy/alfresco/api/sites