Cross-domain Konfiguration mit CORS für caldavzap

Status
Für weitere Antworten geschlossen.

PRozAC

Benutzer
Mitglied seit
05. Mai 2015
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Moin,

ich betreibe mehrere Subdomains mit einem Domänen Wildcard Zertifikat z.B. solar.mydomain.xyz, caldav.mydomain.xyz und kalender.mydomain.xyz unter DSM 5.1.
Die direkten Zugriffe über die Virtual Host Konfiguration auf die Subdomains funktionieren.

Jetzt möchte ich caldavzap als Webkalender unter kalender.mydomain.xyz nutzen der wiederum auf caldav.mydomain.xyz zugreifen muss.
Leider sperrt sich da Java weil es ein cross-domain setup ist.

Damit der Server die richtigen CORS Header zurück gibt muss ich folgende Punkte dem Server beibringen:

Rich (BBCode):
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS, PROPFIND, PROPPATCH, REPORT, PUT, MOVE, DELETE, LOCK, UNLOCK
Access-Control-Allow-Headers: User-Agent, Authorization, Content-type, Depth, If-match, If-None-Match, Lock-Token, Timeout, Destination, Overwrite, X-client, X-Requested-With

Ich habe leider nicht wirklich Ahnung wo ich beim Apache diese Einträge vornehmen muss.
Vielleicht kann mir jemand etwas auf die Sprünge helfen :)

Vielen Dank im Voraus!

Gruß..
Stefan
 

bvrulez

Benutzer
Mitglied seit
19. Feb 2014
Beiträge
292
Punkte für Reaktionen
0
Punkte
0
Gruß, ich möchte InfCloud verwenden und habe das gleiche Problem. Konntest Du eine Lösung finden? Scheinbar kann man den Appache mittels der .htcaccess konfigurieren. Ben
 
Zuletzt bearbeitet:

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Im infcloud-Ordner ist doch eine .htaccess drin? Ich gebe sie hier einfach mal wieder:

Rich (BBCode):
#########################################################################################################################
# Apache configuration (REQUIRED for correct HTML5 cache functionality in browsers):
# 1.) You NEED to enable the following Apache modules: mod_mime, mod_headers (optionally you can also enable mod_deflate)
# 2.) You NEED to add the following lines into your Apache vhost configuration (without the #         character):
#     <Directory /client/installation/directory/>
#        AllowOverride FileInfo Limit
#         <IfVersion >= 2.3>
#             Require all granted
#         </IfVersion>
#         <IfVersion < 2.3>
#             Order allow,deny
#             Allow from all
#         </IfVersion>
#     </Directory>
#########################################################################################################################

# Add "Content-Type: text/cache-manifest" header for .manifest files
<IfModule mod_mime.c>
    AddType text/cache-manifest .manifest
</IfModule>

# Add "Cache-Control: max-age=0, must-revalidate, no-cache, no-transform, private" header for all     files
#  for more information see: https://tools.ietf.org/html/rfc7234
<IfModule mod_headers.c>
    Header set Cache-Control "max-age=0, must-revalidate, no-cache, no-transform, private"
</IfModule>

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
</IfModule>

# If you use mod_cache set the correct path for the cache.manifest here
#<IfModule mod_cache.c>
#    CacheDisable cache.manifest
#</IfModule>
 

bvrulez

Benutzer
Mitglied seit
19. Feb 2014
Beiträge
292
Punkte für Reaktionen
0
Punkte
0
War mir bisher nicht bewusst. Aber selbst wenn, man muss ja den webserver instruieren und nicht infcloud, oder hab ich das falsch verstanden? Ich lese da auch nichts von CORS headern, sondern nur vom cache.
 

hvkls

Benutzer
Mitglied seit
23. Dez 2012
Beiträge
463
Punkte für Reaktionen
0
Punkte
22
Ich kann dir nur sagen, dass Infcloud genauso so, wie es da steht, mit der Apache-Standardkonfiguration des aktuellen DSM (ohne Virtual Hosts), hier mit Baikal funktioniert. calcard.php und das Konfigurationsgerüst habe ich von delta23 aus dem Thread, aus dem du ausgeforkt hast.

# httpd -v
Server version: Apache/2.2.31 (Unix)
Server built: Oct 16 2015 05:59:15

// config.js fuer infcloud
var globalNetworkCheckSettings={href: 'https://some.address.ip/baikal/calcard.php/principals/', hrefLabel: null, additionalResources: [], forceReadOnly: null, settingsAccount: true, timeOut: 90000, lockTimeOut: 10000, delegation: true, backgroundCalendars: [], ignoreAlarms: false}
var globalUseJqueryAuth=true;
var globalInterfaceLanguage='de_DE';
var globalDefaultAddressCountry='de';

plus die gepostete .htaccess

PS: Kannst ja einfach mal zusätzlich

Header add Access-Control-Allow-Origin "*"

in die .htaccess schreiben...
 
Zuletzt bearbeitet:

bvrulez

Benutzer
Mitglied seit
19. Feb 2014
Beiträge
292
Punkte für Reaktionen
0
Punkte
0
Danke Dir für Deine Mühe! Ich hatte die .htaccess tatsächlich nicht hochgeladen, weil ich verstecke Dateien ausgeblendet hatte.

Obwohl ich kein crossDomain-Setup habe (sagt die Konsole) und den cache auch immer update (mit Veränderung und Upload der cache.manifest) und auch diverse Varianten versucht habe die Eigenschaft in der .htaccess unterzubringen, funktioniert es nicht.

Bei stackoverflow gibts einen hoch bewerteten post, in dem "Header set Access-Control-Allow-Origin "*"" in den Abschnitt IfModule mod_headers.c muss. Das habe ich ausprobiert, mit Asterix in Hochkommas, mit Asterix ohne Hochkommas und mit der konkreten IP am Tunnelende (10.0.0.0). Auch die extra Zeile Header set Access-Control-Allow-Credentials true habe ich versucht. Aber weiterhin gibt die Konsole aus, dass der Fehler bestände, dass der Header nicht die gewünschten Angaben enthält.

EDIT: Ich denke, der Server, der die CORS-Header zurückgeben muss ist der CardDAV-Server (bzw. CalDAV). Die .htaccess an der ich herumwerkle ist aber Teil des InfCloud-Clients. Die Frage ist also, wo man im Synology-eigenen CardDAV-Server einstellt, dass die angegebenen Header generiert werden. Bei Dir läuft es wahrscheinlich deshalb unproblematisch, weil Baikal eventuell als Server bereits diese Header nutzt und Du das daher nicht erst angeben musstest.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat