Mockolt JWT token elkészítése tesztekhez
Az integrációs tesztekhez szeretnénk mockolni a keycloak-os autentikációt, ehhez szükségünk van olyan valid JWT tokenekre, amik nem járnak le. Ahhoz, hogy egy ilyen token-t manuálisan elő tudjunk állítani szükségünk lesz a privát kulcsra, amivel a Keycloak aláírja a JWT tokeneket.
1. JWT token megszerzése
Először szükségünk lesz egy olyan JWT tokenre, amit a Keycloak állított elő. Ennek megszerzésére több mód is van.
Az egyik, hogy a saját alkalmazásunkból bejelentkezés után az egyik kérésből kimásoljuk az Authorization fejlécből
a Bearer utáni tokent.

2. JWT token átírása
Erre egy jó eszköz a jwt.io weboldal, ahol tudjuk szövegesen szerkeszteni a JWT tokent.
- Ide beillesztve jobb oldalon láthatjuk a token payload-ját, itt kell átírnunk először az
expmezőt, lehetőleg olyan magas értékre, hogy ne legyen probléma a lejárat (pl. 32492389873). - Az
issmezőt is át kell írni úgy, hogy maga a domain megegyezzen majd azzal a mock szerver címével, amit majd az integrációs tesztek során használunk. Alapesetben a keycloak elérése localhoston:http://localhost:8071/realms/admin-realm, integrációs tesztek közben pedig a mockolt szerver címe:http://localhost:12345/realms/admin-realm

3. JWT token aláírása
Ahhoz, hogy a token valid maradjon alá kell írnunk a privát kulccsal. Ezt a kulcsot az exportált konfigból tudjuk
kimásolni (admin-keycloak-realm.json) az org.keycloak.keys.KeyProvider rész alatt lévő rsa-generated nevű
elem config.privateKey mezőjéből.
Fontos, hogy a kulcshoz tegyük hozzá az alábbi fejlécet és láblécet, és úgy illesszük be az oldalra:
-----BEGIN RSA PRIVATE KEY-----
privát kulcs helye
-----END RSA PRIVATE KEY-----

Ha mindent jól csináltunk, akkor az oldal alján, bal oldalt a „Signature verified“ üzenetet láthatjuk, ezután ki lehet
másolni bal oldalról az átírt JWT-t, és felhasználni a tesztekben az Authorization: Bearer header-ben.