<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p></p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">Hi,</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">I'm trying to get a better understanding of the communication between Keycloak and spring security&nbsp;client applications. &nbsp;If I'm understanding the authentication/authorization flow,
 it would be something like:</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">1. User (or client&nbsp;application) login to application</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">2. Spring security redirects to Keycloak</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">3. Keycloak verifies user and creates a JWT</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">4. Redirects user with JWT back to application</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">5. Verifies JWT</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">6. Sends response to client</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">For step #5, verification: Does spring security verify the JWT locally, or is the token sent back to Keycloak for verification? &nbsp;I'm wondering how much &quot;chatter&quot; there is between
 Spring security and Keycloak for every request.</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">If a user already has a non-expired JWT, does it just do steps 5-6 until it expires? &nbsp;Once it expires, it requests a new JWT from Keycloak?&nbsp;</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;"><br>
</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">Thanks,</p>
<p style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 16px;">Matt</p>
<br>
<p></p>
</div>
</body>
</html>