Írta: tom1964h
Hitelesítés a Tomcat serveren
Hitelesítés szerver oldalon - a szervlet felkészítése a hitelesítési képességgel
A server ellenőriz, autentikál - azaz eldönti, hogy a beérkező credentials (azaz hitelesítő adatok, értsd: username és password) helyesek-e. A döntés eredménye mindig kettő féle:
- mi van ha nem sikeres? -> erre az esetre létrehozzuk a .noAccess() metódust: ez a response-t fogadja és módosítja is: beállít egy hibaüzenetet a
response.sendError(401);
segítségével: a szerver 401-es hibát ad ki; - mi van ha sikeres? -> ebben az esetben kiszolgáljuk a felhasználót.
A TestServlet a döntést egy logikai változóban tárolja el: boolean success = checkOut(request);
A döntést a checkOut() függvény végzi el, a következő logika szerint:
- előszedi a request-ből a credentials-t:
String authValue = request.getHeader("Authorization");
- megnézi, hogy a string üres-e:
if (authValue == null) {...}
- megnézi, hogy a string Basic … kezdetű-e:
if (!authValue.toUpperCase().startsWith("BASIC ")) { ... }
- dekódol:
String userpass = new String(Base64.getDecoder().decode(authValue.substring(6)));
- adatot tisztít:
String userpass = new String(Base64.getDecoder().decode(authValue.substring(6)));
int counter = userpass.indexOf(":");
String observervedUsername = userpass.substring(0, counter);
String observervedPassword = userpass.substring(counter + 1);
- előveszi a tárolt jelszót és password-öt és összehasonlít:
if (observervedUsername.equals(USERNAME) && observervedPassword.equals(PASSWORD)) {...}
A USERNAME és a PASSWORD adatok vagy egy config.conf
állományból, vagy egy adatbázisból érkeznek.
A TestServlet a success változó alapján vezérli a választ:
if (success) { ... response legyártása ...
} else {
noAccess(response);
}
kép forrása postman.com
Hitelesítés szimulálása kliens oldalon (POSTMAN)
A Postman használata segítség a böngésző-kliens és a szerver közötti kommunikációban: világosan megmutatja a belső folyamatokat és a tevékenységet le is menthetjük. Igaz, a bármely böngészőben elérhető Fejlesztő mód (F12) is nagyon részletes információkkal szolgál a szerver-kommunikációról, de a Postman kényelmesebb. Miután letöltöttük, válasszuk a csak kipróbálás módot, ne regisztráljunk és ne jelentkezzünk be. A Postman-ben ki tudjuk választani, milyen HTTP-metódus szerint kérdezzük le a szervert, megadhatjuk a szerver címét és választhatunk a különböző autentikációs módok között is. Feladat a Postman-nel authentikáció ellenőrzése:
- elindítva ki kell választani a HTTP-method tipusát
- a kereső-sorba beilleszteni a lekérdezési URL-t:
localhost:8080/TestServlet/tests/asd
- visszaadja a nyers response-t
- az Authorization fülön teszteljük majd az autentikációt: beírhatjuk a user-t és a jelszót