Connect. Communicate. Collaborate. Securely.

Domů » Česky » Kerio Connect » CalDAV a Cross Domain Access z JS (Jak vynutit na Kerio Connect akceptovatelné "Access-Control-Allow-Origin".)
  •  
leonell je nyní offline leonell

Příspěvky: 7
Odeslat poštu tomuto uživateli
Dobrý den,
chtěl jsem si udělat webovou (resp JS) aplikaci, která by zobrazila na jedné stránce jakýsi denní přehled co se bude dít, od narozenin známých po aktuální události. Kontakty čerpám z Google, tam problém nemám, ale u události z Kerio se nemohu pohnout dál. Používám přístup přes CalDAV, ale problém nastane ještě dříve, než se vůbec CalDAV dostane k lízu.

Přístup z AJAXu (zkoušen Chrome a Edge) skončí na hlášce:
XMLHttpRequest cannot load https://xxx.cz:8443/calendars/xxx.cz/ja/Calendar. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 401.

Čili typické zamítnutí cross-domain přístupu. Můj problém je, že nevím, kde to v případě Kerio Connect serveru (9.0) povolit. Prostě aby Kerio poslalo "Access-Control-Allow-Origin" buď "*" pro všeobecné povolení nebo lépe můj konkrétní server (ten localhost v ukázce je jen teď pro vývoj).
A jelikož jaksi nejde podstrčit tu mojí aplikaci "do Keria" (a ani by to nebylo žádoucí), tak netuším jestli s tím jde vůbec něco dělat.
Nějaký tip?
  •  
Pavel Dobrý (Kerio) je nyní offline Pavel Dobrý (Kerio)

Příspěvky: 1550
Odeslat poštu tomuto uživateli
Když zastavíte server, tak je možné to nastavit v mailserver.cfg, proměnná "AppendHeaderAccessControlAllowOrigin", kam dáte hodnotu pro HTTP hlavičku. Zvažte i případné security dopady změny tohoto nastavení.

Databáze znalostí: http://kb.kerio.com/
Technická podpora: http://www.kerio.cz/cz/support
  •  
leonell je nyní offline leonell

Příspěvky: 7
Odeslat poštu tomuto uživateli
Já jsem z toho nějaký zmatený.

Mám nastaveno:
<variable name="AppendHeaderAccessControlAllowOrigin">http://localhost</variable>

Když dám:
curl -H "Origin: http://localhost" -X OPTIONS --basic --user ja:heslo --verbose http://nasserver.cz:8888/calendars/domena.cz/ja/Calendar

tak:
< HTTP/1.1 200 OK
< Allow: OPTIONS,GET,HEAD,DELETE,PUT,POST,PROPFIND,PROPPATCH,REPORT,S EARCH,MOVE,MKCOL,SUBSCRIBE,UNSUBSCRIBE,POLL,LOCK,UNLOCK,BDEL ETE,BPROPPATCH,ACL,MKCALENDAR
< Connection: Close
< Content-Length: 0
< Content-Type: application/octet-stream
< Date: Mon, 15 Feb 2016 17:01:06 GMT
< DAV: 1,access-control,addressbook,calendar-access,calendar-schedu le,calendar-proxy,calendar-availability,calendarserver-priva te-events,calendar-auto-schedule,calendarserver-pr
incipal-property-search,calendarserver-sharing,calendarserve r-sharing-no-scheduling,calendar-default-alarms
* Server Kerio Connect 9.0.1 is not blacklisted
< Server: Kerio Connect 9.0.1
< X-UA-Compatible: IE=edge

Všimněte si, že tam žádná hlavička Access-Control-Allow-Origin není.

Ale když dám:
curl -H "Origin: http://localhost" -X OPTIONS --basic --user ja:heslo --verbose http://nasserver.cz:8888

Tak:
< HTTP/1.1 301 Moved permanently
< Access-Control-Allow-Origin: http://localhost
< Connection: Close
< Content-Type: application/octet-stream
< Date: Mon, 15 Feb 2016 17:02:10 GMT
< Location: http://nasserver.cz:8888/webmail/
* Server Kerio Connect 9.0.1 is not blacklisted
< Server: Kerio Connect 9.0.1
< X-Frame-Options: SAMEORIGIN
< X-UA-Compatible: IE=edge
<
* Closing connection 0

Neboli je to tam. Předpokládám, že by měla být i u toho prvního volání, které vede přímo ke kalendáři. Každopádně nefunguje mi to a stále hlásí, že:

XMLHttpRequest cannot load http://nasserver.cz:8888/calendars/domena.cz/ja/Calendar. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access. The response had HTTP status code 401.

Můžete to nějak ověřit, že se to chová správně?
Děkuji,
L.
  •  
Pavel Dobrý (Kerio) je nyní offline Pavel Dobrý (Kerio)

Příspěvky: 1550
Odeslat poštu tomuto uživateli
Teď vidím, že se snažíte číst CalDAV z web prohlížeče. Dané volby v konfiguračním souboru jsou určeny jen pro webového klienta, tj. pro webové stránky. Další komunikační protokoly založené na HTTP tyto hlavičky nemají, protože se k nim obvykle nepřistupuje z webových prohlížečů.

Databáze znalostí: http://kb.kerio.com/
Technická podpora: http://www.kerio.cz/cz/support
  •  
leonell je nyní offline leonell

Příspěvky: 7
Odeslat poštu tomuto uživateli
Jak jsem psal v prvním příspěvku - z Javascriptu z webové aplikace na nějakém svém soukromém serveru chci pomocí AJAX volání získat CALDAV zdroj z Kerio serveru (v naší firmě). Výsledkem je ale chybová hláška naznačující, že Kerio neposlalo odpovídající hlavičku povolující CrossDomain přístup.

Vycházel jsem z tohoto:
http://www.local-guru.net/blog/2009/03/29/javascript-caldav- frontend

Nicméně neprošel mi ani úplně jednoduchoučký AJAX, který se prostě pokusil otevřít Kerio CalDAV zdroj. Stejná chyba.

Mně vcelku stačí potvrzení, že to s Kerio Connectem nejde.
Jedná se jen o malinký soukromý projekt, kde holt tím pádem nebude informace o událostech z Kerio serveru. Respektive asi pro soukromé události přejdu na Google Calendar a Google API a bude to vyřešené. Lepší by sice pro mně bylo Kerio, ale chápu, že kvůli mně to asi měnit nebudete Smile
Předchozí téma: Kerio Connect Client přidat sloupec KOMU
Další téma: Zdroje ve veřejných kalendářích
Jít na fórum:
  


Disclaimer:
Kerio discussion forums are intended for open communication between forum members and may contain information and material posted by members which may be useful in learning about Kerio products. The discussion forums are not intended to provide technical support for any specific product. Any information implied or expressed in the discussion forums is that of the posting member. Kerio is in no way responsible for the information posted in the forums, or its accuracy. Kerio employees may participate in the discussions, but their postings do not represent an offical position of the company on any issues raised or discussed. Kerio reserves the right to monitor and maintain the forums to promote free and accurate exchange of information.

Aktuální čas: Čt srp 17 17:26:28 CEST 2017

Celkový čas potřebný k vygenerování této stránky: 0.00377 vteřin
.:: Kontakt :: Domů ::.
Běží na: FUDforum 3.0.4.