Projekti 10. osa Lisage rakendusele ligipääsu kontroll kasutades Spring Security raamistikku. 1. Aadressid, mis algavad sõnega /api nõuavad sisselogimist. 2. Aadressid /api/version ja /api/login on erandid ja ei nõua sisselogimist. (mida /api/version tagastab ei ole määratud) 3. Rakendusel on kaks kasutajat (kasutajanimi: salasõna): user: user admin: admin Kasutajaid hoitakse andmebaasis, mille struktuur on allpool toodud. Kasutajate salasõnu hoitakse räsina. 4. Aadress /api/login võimaldab sisse logida. Sisselogimiseks tuleb postitada andmed kujul: { "userName": "", "password": "" } Kui sisselogimine õnnestub, tagastab rakendus Authorization päisega token-i. Kui klient küsib kaitstud aadressilt infot, peab ta saatma Authorization päisega sisselogmise käigus saadud token-i. 5. Kasutajate vaatamise teenus on kaitstud kasutajapõhiselt: tavakasutaja näeb vaid enda infot ja admin näeb kõigi kasutajate infot. Nt. kui olen sisse loginud kasutajana "user" /api/users - viga http koodiga 401 või 403 /api/users/admin - viga http koodiga 401 või 403 /api/users/jill - viga http koodiga 401 või 403 /api/users/user - OK, http kood 200 Kui on sisse logitud kasutajana, kes omab rolli ROLE_ADMIN, siis näeb kõigi kasutajate infot. Projekt peab läbima järgmised testid: https://bitbucket.org/mkalmo/icd0011tests/src/master/src/test/java/tests/Hw10.java Töötav näidis: https://ci.itcollege.ee/icd0011/examples/hw10/ Tabelid kasutajate info hoidmiseks: CREATE TABLE USERS ( username VARCHAR(255) NOT NULL PRIMARY KEY, password VARCHAR(255) NOT NULL, enabled BOOLEAN NOT NULL, first_name VARCHAR(255) NOT NULL ); CREATE TABLE AUTHORITIES ( username VARCHAR(50) NOT NULL, authority VARCHAR(50) NOT NULL, FOREIGN KEY (username) REFERENCES USERS ON DELETE CASCADE );