Search
Termín odevzdání je do pondělí večer 12. 6. 23:59.
Můžete získat nejvýše 30 bodů a to:
Celkem tedy lze získat 10 bodů.
Budou jasná jakmile více lidí odevzdá. Zatím mám v plánu použít Apache Benchmark:
* Pro profiling doporučuji používat jvisualvm, který je součástí JDK: “Java\jdk8\bin\jvisualvm.exe”
Implementujte jednoduchý statický reaktivní webový server. O tom co reaktivní server je a jak ho vytvořit více na cvičení. Studenti, kteří mají server hotový z minulého běhu předmětu nemusí celý server na reaktivní předělávat a dostanou individuální pokyny.
Požadavky na Vaše řešení:
Server umožní uživateli (administrátorovi webových stránek) prohlásit složku za chráněnou. Use case:
Firma SpringfieldAuto prodává ojeté automobily ve Springfieldu. Má webovou stránku se svou nabídkou, která je veřejná pro všechny uživatele internetu. Pro VIP zákazníky má skrytou sekci webu s nabídkou speciálních automobilů. Tuto sekci má zaheslovanou. Uživatelské jméno a heslo zasílá svým klientům obálkou.
Server bude pokládat složku za chráněnou, pokud bude obsahovat soubor .htaccess, který bude mít následující formát:
user:base64(hashed(salt+password))
Příklad:
webuser1:da39a3ee5e6b4b0d3255bfef95601890afd80709
Kde webuser1 je uživatelské jméno, da39a3ee5e6b4b0d3255bfef95601890afd80709 je hash osaltovaného hesla. Můžete se podívat na příklad hashování v javě [pastebin].
Pokud složka takový soubor obsahuje, webserver musí vyžadovat heslo pro přístup ke všem jejím souborům a souborům v podadresářích.
Prohlížeč posílá přihlašovací údaje ve formě user:pass, které jsou zakódované v base64. Při kontrole hesla tedy musíte přijaté údaje dekódovat a následně heslo zahashovat, abyste ho mohli porovnat s uloženým heslem.
Součástí hodnocení návrhu je také posouzení kvality kódu s použitím maven pluginu findbugs. Abyste si mohli kontrolu zapnut i vy už v průběhu vývoje, přidejte si následující text do pom.xml:
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>findbugs-maven-plugin</artifactId> <executions> <execution> <id>findbugs-check</id> <phase>compile</phase> <goals> <goal>check</goal> </goals> </execution> </executions> <configuration> <effort>Max</effort> </configuration> <version>3.0.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
Po přidání <build> konfigurace do pluginu se kontrola kódu bude spouštět vždy při kompilaci (mvn compile).
Na semestrální úlohu máte dostatek času. Ideálním výsledkem je kód, který můžete publikovat, jako součást portfolia své kvalitní práce z dob studií. Nejeden zaměstnavatel po Vás ukázku kvalitního kódu bude chtít. Takový kód by měl být čistý a bez zbytečností. Před odevzdáním semestrální práce prosím projděte seznam níže, pro kontrolu, zdali jste v kódu nenechali něco nechtěného.