2016-08-02 5 views
0

Ich versuche, eine Website zu aktualisieren (ändern Sie einfach ihren Namen) Ich habe mit dem Skript Freigabe in Alfresco erstellt, aber ich bekomme eine 401 Antwort. Ich bin mir sicher, dass mein Login und Passwort korrekt sind.Wie kann ich eine Alfresco-Share-Site aktualisieren?

Code:

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 

Ich erhalte den Fehler auf dem zweiten Teil. Der Login-Teil funktioniert ohne Probleme. Können Sie mir sagen, was ich falsch mache?

+0

Es scheint, dass Sie authentifizieren einen anderen Kontext (/ share) als den, den Sie gerade bearbeiten (/ alfresco). Was passiert, wenn Sie sich auf dem Backend alfresco authentifizieren oder die/alfresco/service/api/sites über die Freigabe proxy/share/proxy/alfresco/api/sites aufrufen? – Akah

+0

thx für Ihre Antwort, ich tippte in die Navigator URL "http://127.0.0.1:8080/share/proxy/alfresco/api/sites" Ich habe die Liste der bestehenden Websites auf Alfresco mit Details und das gleiche mit "http : //127.0.0.1: 8080/alfresco/service/api/sites "und ich muss den login und passwort eingeben –

+0

Ja, weil dein alfresco hat zwei zusammenhänge. Ich werde eine antwort schreiben, wird es klarer. – Akah

Antwort

2

Dies liegt daran, dass Sie verschiedene Kontexte verwenden, um Ihre Abfragen zu erstellen.

Der Alfresco Stack besteht aus mehrfachen Teilen:

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

Wenn wir den solr Teil vergessen und konzentrieren sich auf Ihre Problem, Sie haben:

  • ein Content Repository (im Freien), die die Kernleistungen im Freien enthält
  • eine Webapplikation (Aktie), die den Web-UI Ihrer Anwendung enthält und kommunizieren, um die Content-Repository einige Aktionen zu tun

Sie don Ich teile nicht den gleichen Kontext und habe unterschiedliche Leben. Einer kann auf einem Server sein, der andere auf einem anderen Server.

Also dieses Mittel, wenn Sie die Authentifizierung, können Sie es auf dem Aktie Kontext tun:

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

und wenn Sie versuchen, Ihre Website zu aktualisieren, Sie tun es auf dem Freien Kontext (auf dem Sie noch nicht authentifiziert sind):

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

ich sehe zwei Lösungen dann:

  1. Sie tun, um Ihre Authentifizierung auf dem Freien Kontext (webservice alfresco/s/api/login) und dann werden Sie für den Aufruf Ihrer Alfresco Ort-Service
  2. Sie über die Freigabe Proxy passieren authentifiziert werden: /alfresco/service/api/sites wird /share/proxy/alfresco/api/sites
+0

thx für ihre antwort Ich verstehe jetzt den Unterschied, aber ich habe immer noch das gleiche Problem mit dem Content-Repository (Alfresco) Ich habe eine 400 Antwort: schlechte Anfrage in der Authentification-Prozess und mit der Freigabe ein Ich habe das gleiche Problem mit 401 Antwort ? "/ alfresco/service/api/sites" –

+1

400 bedeutet, dass Sie Ihre Anmeldeabfrage falsch formatiert haben. Sehen Sie sich Ihre Skriptdefinition an, um festzustellen, ob etwas fehlt: http: // localhost: 8080/alfresco/s/script/org /alfresco/repository/login.post Für den zweiten habe ich einen Fehler gemacht, ich habe ihn in meiner Antwort korrigiert. – Akah

Verwandte Themen