Logo Czechitas
Vloženo: 6. 4. 2018

Úkol 06 - Přihlašovací dialog

Vytvořte webovou aplikaci, podle dodaných podkladů webových stránek Telefonni_seznam-Prihlasovani-Podklady.zip.

V podkladech jsou pouze statické webové stránky, jak byste je mohli dostat od tvůrce webu. Vaším úkolem je tento statický web předělat do naší šablony Spring Bootu a rozběhnout základní funkcionalitu.

Popis stránek

index.html Úvodní stránka. Za normálních okolností by z ní šlo na hlavni.html. Nicméně jsme se rozhodli, že pro přístup na hlavni.html je nutné se nejprve přihlásit. Musí se tedy nejprve projít přes stránku prihlaseni.html.
prihlaseni.html Přihlašovací formulář. Po odeslání formuláře se na serveru zkontroluje zadaný email a heslo. Stačí, když bude aplikace akceptovat napevno email "pokus@pokus.com" a heslo "password".
Nezapomeňte, že Stringy se porovnávají pomocí equals(), nikoliv ==. Tedy například vyplnenyFormular.getPrihlasovaciJmeno().equals("pokus@pokus.com").
V případě platného přihlášení se prohlížeč přesměruje na hlavni.html.
V případě neplatného přihlášení se znovu zobrazí původní stránka prihlaseni.html a chybová hláška. Je velmi vhodné, aby zůstal vyplněný email z minulého pokusu.
hlavni.html Stránka se seznamem. Buď použijte tu, která je ve statickém web designu, nebo jako bonus použijte aplikaci z hodiny na evidenci telefonního seznamu.
registrace.html

zapomenute-heslo.html
Při přihlašování je typicky možné se i alternativně zaregistrovat a nebo si vyžádat email se zapomenutým heslem. Rozchoďte tyto formuláře. Stačí, když budou fungovat "na oko", ale ve skutečnosti žádný email posílat nebudou (zapomenute-heslo.html), ani neakceptují registraci nového uživatele (registrace.html) a ve skutečnosti zůstane jediný možný email a heslo stále jen "pokus@pokus.com" a "password". Nepovinně bych ale velmi doporučoval zkusit si evidenci uživatelů naprogramovat.

Poznámka: Takto naprogramované přihlašování samozřejmě funguje jen při přístupu z index.html. Pokud by uživatel přistoupil přímo k hlavni.html, nemusel by se přihlašovat. Tento problém neřešte a tvařme se, že neexistuje. Řešením je tzv. HttpSession a vložení přihlášeného uživatele do této HttpSession. Stránka prihlaseni.html by se potom zobrazovala automaticky, pokud by nebyl v HttpSession přihlášený uživatel.

Jednak by to ale bylo pracné, ale zároveň je mnohem lepší použít existující autentizační framework, například Spring Security. Jeho složitost je ale daleko za rozsahem jednoho domácího úkolu.

Ukázkový web můžete vidět na https://margot.tomcat.cloud/ukol06/

Stránky musejí z prohlížeče fungovat jak při souborovém přístupu, tak při přístupu přes webový server (se Spring Bootem).

Pár tipů:

Odevzdání domácího úkolu

Složku s projektem nejprve zbavte přeložených artefaktů, aby byla menší. To zařídíte ručním smazáním složky PROJEKT/target nebo pomocí v IntelliJ IDEA -> Maven Projects -> ukol -> Lifecycle -> clean. Poté složku s projektem zabalte pomocí 7-Zipu pod jménem Ukol06-Vase_Jmeno.7z. Lze použít i jen prostý zip (například na Macu). Takto vytvořený archív nahrajte na Google Drive do složky Ukol06.

Vytvořte archív .war v IntelliJ IDEA -> Maven Projects -> ukol -> Lifecycle -> clean a následně IntelliJ IDEA -> Maven Projects -> ukol -> Lifecycle -> package. Goal "package" vytvoří archív .war v PROJEKT/target/ukol06.war. Nasaďte jej do vašeho lokálního Tomcatu (JAVA-TRAINING/Tomcat/webapps) a vyzkoušejte, že funguje ( http://localhost:8080/ukol06/ ).

Po odladění nasaďte tento archív ještě přes FTP na server Tomcat.cloud ( http://sladkost.tomcat.cloud/ukol06/ ).

Vytvořte snímek obrazovky spuštěného programu a pochlubte se s ním ve fotoalbu Úkol06 na Facebooku.

Pokud byste chtěli odevzdat revizi úkolu (např. po opravě), zabalte ji a nahrajte ji na stejný Google Drive znovu, jen tentokrát se jménem Ukol06-Vase_Jmeno-verze2.7z

Termín odevzdání je do úterý 10. 4. 2018 23:59. Pokud úkol nebo revizi odevzdáte později, prosím pošlete svému opravujícímu kouči/lektorovi email nebo zprávu přes FB.