Registrované požadavky

Upravit obsah stránky

Umožňují zaregistrovat XML požadavek a ten pak spustit prostřednictvím běžného HTTP GET požadavku. Tento HTTP GET požadavek nevyžaduje žádné ověření a je proveden v kontextu uživatele, který požadavek registroval (admin může registrovat požadavky i na jiné uživatele). VýslednéURL může být odesláno uživateli, který jej má zavolat například emailem, uživatel jej může následně vyvolat a provést tak nějakou operaci (uložit dokument, změnit heslo, ...).

Parametrizace požadavků

Registrované požadavky mohou využívatparametry. Při volání požadavku register (vytváření registrace) jsou v registrovaném požadavku uvedeny názvy parametru v hranatých závorkách. Při následném voláni registrace prostřednicvím HTTP GET requesty jsou parametry nahrazeny hodnotami předanými v HTTP GETrequestu.

Pokud je v registrovaném požadavku uveden parametr, ale v HTTP GET requestu není uveden, pak je v následném volání nahrazen prázdným řetězcem.

Názvy parametrů musí splňovat následující pravidla:

bullet

Maximální délka 8 znaků

bullet

Přípustné jsou alfanumerické znaky, dále pak znaky ".-_#"

bullet

Názvy parametrů jsou case sensitive

Hodnota předávaná parametrem je vkládána do XML nezměněná, t.j. případné použití escape sekvencí je plně v režiji tvúrce HTTP GET requestu. Důvodem je, aby mohlo být vkládáno jak do hodnot, tak také celé atributy, či uzly.

Formát HTTP GETrequestu

HTTP GET requesty mají jednoduchý formát, sestávající z klíčového slova request a parametru RID, který nabývá hodnoty regID (viz níže).

Základní formát HTTP GET requestu je následující:

http://hostname/request?RID=regID

Kde regID je alfanumerický (ve skutečnosti hexadecimální řetězec) o délce 32 znaků (16 bajtů). Tento řetězec je vracen některými požadavky, především požadavkem register. Viz níže v požadavcíchsouvisejících s registrací.

Parametrizovaný HTTP GET request:

http://hostname/request?RID=regID&PARNAME1=Parametr+value1&PARNAME2=Parametr+value2

V tomtopožadavku jsou navíc oproti předchozímu použity parametry z předchozí kapitoly. Každý parametr má strukturu klíče a hodnoty, kde klíč je jméno parametru uvedené při registraci a hodnota je to, čím bude v prováděném požadavku nahrazen.

Průběh prováděnípožadavku

Při zpracovávání HTTP GET requestu bylo třeba počítat, že tento request může přijít, jak od autentifikovaného uživatele, tak od uživatele neautentifikovaného. K prvnímu případu dojde v okamžiku, kdy má uživatel flexideo zapnuté a vyvolá registrovanýpožadavek (třepa po té, co mu přišel emailem), k druhé situaci dojde pokud je požadavek vyvolán uživatelem, který flexideo právě nepoužívá. Tyto dvě situace je třeba brát v úvahu při čtení postupu provádění HTTP GET požadavku.

Nahrazeníparametrů

V registrovaném požadavku jsou nahrazeny parametry dle klíčů a hodnot uvedených v HTTP GET requestu. Neuvedené parametry jsou nahrazeny prázdným řetězcem.

Provedení registrovanéhopožadavku

Je vytvořeno dočasné přihlášení uživatele, pod nímž má být požadavek proveden. Následně je proveden poždavek.

Příprava odpovědi

Je zjištěno, zda máregistrace nastavenu vlastní odpovědní stránku (viz požadavek register). Pokud ano, pak je zvolena tato. Pokud ne, pak je zjištěno, zda je nastavena výchozí odpovědní stránka. Pokud ano, pak je zvolena tato. Není-li zvolena žádná stránka, zpracovávání odpovědi končí a jevrácena HTTP odpověď 200 OK.

Jelikož i ve zvolené odpovědi mohou být uvedeny další parametry (za otazníkem - viz požadavek register), jsou parametry z požadavku a zvolené odpovědní stránky sloučeny. Dále jsou připraveny proměnné pro použitelnépřípadnou *.fsp stránkou. Jedná se o následující proměnné v kolekci inter (viz FSP):

bullet

$inter{'result'} - obsahuje bool hodnotu, zda byl požadavek proveden správně - ukazuje, jestli během provádění něco selhalo, nikoli jestlise udělalo, co mělo (stejně jako při provádění akcí)

bullet

$inter{'xml'} - obsahuje celé xml odpovědi na provedený požadavek

Zpracování odpovědi

Odpověď jezpracovávána stejně, jako běžná statická stránka. V případě, že je odpovědí *.fsp stránka, jsou jí předány veškeré parametry uvedené HTTP GET i v parametrech odpovědní stránky. Zde je potřeba upozornit, že do stránky jako takové se parametry uvedené u odpovědní stránky nedostanou, proto je nenímožné zpracovat ze stránky například JavaScriptem. Původní HTTP GET request samozřejmě prostřednictvím JavaScriptu na stránce zpracovat lze.

V případě zpracování odpovědi prostřednicvím *.fsp stránky, je této stránce předána kromě výše zmiňované kolekce inter, takéběžná sada informací "jako vždycky" (viz FSP).

Odpověď jezaslána i v případě, kdy registrovaný požadavek selže (o čemž se statická stránka nijak nedozví, ale *.fsp stránka to zjistí z kolekce inter, viz výše).

Chybové odpovědi

V případě selhání jsou vždy vraceny HTTP chyby. Vráceny mohou být následující chyby:

bullet

400 Bad Request - tato chyba je vracena za následujících okolností:

bullet

nebylo zadáno regID příslušná registrace nebyla nalezena nebo je neplatná (vypršela, nebo byla smazána) použitý parametr docílil neplatnosti XML (rozboural ho)

bullet

403 Forbidden - uživatel, který měl požadavek provést byl smazán

bullet

404 Not Found - vybraná odpovědní stránka neexistuje

bullet

500 Internal Server Error - selhání spojení s databází

Správa registrovaných požadavků a úklid

Registrovanépožadavky jsou spravovány jednak automatizovaně systémem a dále mohou být spravovány prostřednictvím níže uvedených požadavků - zejména register-del. Automatizovaná správa je prováděna periodicky, dle níže uvedených pravidel.

Požadavky, kterépozbyly platnost (vypršela doba dle atributu till nebo atributu count viz níže požadavek register) jsou automaticky vymazány. Výmaz probíhá pouze logicky, fyzicky v databázi zůstávají - jsou tedy za smazané pouze označeny.Takto logicky smazané požadavky zajišťují, že jejich regID nemůže být znovu použito a nemůže dojít záměně požadavku na základě shodného regID v dřívější a stávající registraci. Z důvodu rozšíření bezpečnosti je možné, na základě volby konfigurace nastavit, aby u smazaných požadavků bylvynulován vlastní požadavek. Tím, lze zajistit, aby nebylo možné dohledat, co registrace dříve dělala.

K fyzickému mazání registrací může, je-li tato volba v konfiguraci povolena (viz níže), docházet také. Registrace jsou pak automaticky mazány po uplynutí určené dobyod jejich logického výmazu.

Pomocí požadavku register-del dojde k okamžitému logickému výmazu registrace.

Vazby registrovaných požadavků na konfigurační soubor

Registrované požadavky umožňují nastavit své chováníprostřednictvím několika voleb v konfiguračním souboru.

Konfigurační volba REGISTERPREFIX

Umožňuje nahradit defaultní klíčové slovo request v HTTP GET requestu jiným.

Možné hodnoty: řetězec Vychozí hodnota: neuvedeno - request

Konfigurační volba REGISTER_DISPOSE_REQUEST

Určuje, zda je po logickém výmazu fyzicky zničena"požadavková část", tedy vlastní registrovaný požadavek. Tato volba byla přidána v souvislosti s GDPR a slouží jako rozšířené zabezpečení proti úniku informací.

Možné hodnoty: TRUE | FALSE

Výchozí hodnota: FALSE

Konfigurační volba REGISTER_DEL_PERIOD

Určuje, jak často v sekundách je prováděn logický výmaz požadavků, které již pozbyly platnost. Je-li parametr nastaven na hodnotu 0, pak dochází k výmazu pouze po startu aplikace.

Možné hodnoty: kladné číslo

Výchozí hodnota je každých 24 hodin.

Konfigurační volba REGISTER_DEL_TIME

Určuje od jakého času v seknudách se má začít počítat perioda zkonfigurační volby REGISTER_DEL_PERIOD. Čas je určován, jako počet sekund od půlnoci. Jejím nastavením na více než 24 hodin, oddálíte okamžik prvního spuštění.

Možné hodnoty: kladné číslo

Výchozí hodnota je půlnoc(0).

Konfigurační volba REGISTER_REALDEL

Určuje po jaké době v sekundách od logického výmazu má proběhnout fyzický výmaz registrace. Hodnota 0 znamená, že k výmazu dojde bezprostředně (v nejkratší možnédobě) po logickém výmazu. Záporná hodnotta znamená, že k výmazu nedojde nikdy.

Možné hodnoty: číslo

Výchozí hodnota je nikdy (-1)

Konfigurační volba REGISTER_DEFAULT_RESPONSE

Určuje stránku, která se vrátí jako odpověď na registrovaný požadavek, pokud při jeho registraci nebyla uvedena jiná. Stejně jako v atributu response požadavku register se jedná se o absolutní cestu, kde na začátku není uvedeno lomítko. Při jejím zpracování se berou vúvahu virtuální adresáře i nice URL.

Možné hodnoty: řetězec

Výchozí hodnota: nic

Požadavky související s registrací

Požadavek register

Požadavek register-list

Požadavek register-del