Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iCloud Problem beim Download / Upload der Bilder #122

Closed
toby17780 opened this issue Feb 15, 2019 · 7 comments
Closed

iCloud Problem beim Download / Upload der Bilder #122

toby17780 opened this issue Feb 15, 2019 · 7 comments

Comments

@toby17780
Copy link

Hallo,
ich habe ein Problem bei der Verwendung des iCloud Accounts. Der Download der Bilder funktioniert leider nicht. Bei der Analyse habe ich das festgestellt:
In der Backend.php wird geprüft, ob die Bilder auf dem selben Server liegen wie die vCards.

    //check if mime is linked onto the same server
    $serv = explode('/', $this->url, 4);                   // get the beginning of the current server adress
    $link = explode('/', $vcard->{$substituteID}, 4);      // get the beginning of the linked adress
    if (strcasecmp($serv[2], $link[2]) !== 0) {            // if they aren´t equal authorisation will fail!
        return $vcard;
    }

Bei iCloud Kontakten schlägt die Prüfung aus folgendem Grund immer fehl:

   CalDAV URL: https://p44-contacts.icloud.com/...
   Picture URL: https://p44-contacts.icloud.com:443/...

Das kann man zwar umgehen, wenn man bei der CalDAV URL den Port mit angibt, könnte man aber auch im Vergleich berücksichtigen.

Das Script hat aber immer noch nur einige meiner Bilder geladen. Dabei ist mir aufgefallen, dass meine Bilder auf unterschiedlichen iCloud Stores liegen:

   https://p03-contacts.icloud.com/...
   https://p44-contacts.icloud.com/...

Als ich die if Abfrage zum Test komplett deaktiviert habe, wurden aber alle Bilder korrekt geladen!
Das heißt -> für iCloud CalDAV Server würde es reichen auf die Domain zu prüfen, und die Subdomain komplett zu ignorieren. Ob das natürlich bei allen anderen CalDAV Servern genauso funktioniert kann ich nicht beurteilen.
Zumindest wäre aber die Ausgabe eines Fehlers in dem Fall wichtig, denn ich hab schon eine ganze Weile gebraucht um dahinter zu kommen. (ich für mich habe die if Abfrage jetzt einfach mal auskommentiert und so läufts erstmal)

@andig
Copy link
Owner

andig commented Feb 16, 2019 via email

@toby17780
Copy link
Author

Naja - ignorieren aber ein Fehler ausgeben wäre doch cool, oder?
Grüße Tobias

@andig
Copy link
Owner

andig commented Feb 16, 2019 via email

@blacksenator
Copy link
Collaborator

blacksenator commented Jun 4, 2019

@toby17780
Ich habe bei mir die gleiche Situaton. Daher hatte ich die Prüfung eingebaut. Ich habe wie du testweise
"...die if Abfrage ... deaktiviert"
Dann geht wie ehedem das script mit einer Exception auf die Bretter: "...resulted in a 403 Forbidden response".
Ich versteh nicht, wieso das bei Dir funktioniert.

@andig
Copy link
Owner

andig commented Jun 5, 2019

Der Vergleich wie aktuell implementiert macht keinen Sinn da der Port irrelevant ist, aber mit verglichen ist. Stattdessen müsste vorab der Host mittels parse_url ermittelt werden und nur dieser verglichen.

Pr welcome 😀

@andig
Copy link
Owner

andig commented Jun 5, 2019

Update: bei Dir ist es sogar noch schlimmer: die Server sind auch nich unterschiedlich. Dann würde ich vorschlagen die Abfrage rauszunehmen und Authorization Fehler zu loggen aber nicht mehr abzubrechen.

@blacksenator
Copy link
Collaborator

ist schon umgesetzt - kommt mit dem PR für vcardLib.
Ja, ich weiß: Streng logisch betrachtet ein eigener PR - aber ich musste in dem Coding sowieso rumschrauben...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants