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:
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řeba 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ého pož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žadavek.
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 je vrá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):
Zpracování odpovědi
Odpověď je zpracová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ěď je zaslá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:
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ů byl vynulová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é doby od 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
Výchozí 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 sekundách se má začít počítat perioda z konfigurač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