package Ġcom . accent ure . inter oper ability . webserver Ċ Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . web . bind . annotation .* ĊĊ Ċ /** Ċ Ġ* ĠAuthentication Ġconfiguration . Ċ Ġ*/ Ċ @ Component Ċ class ĠSingle User ( ĊĠĠĠ Ġ@ Value ("\ ${ auth . username }") Ġprivate Ġval Ġusername : ĠString , ĊĠĠĠ Ġ@ Value ("\ ${ auth . password }") Ġprivate Ġval Ġpassword : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġinternal Ġfun ĠisValid Single User ( ĊĠĠĠĠĠĠĠ Ġusername : ĠString , Ġpassword : ĠString ĊĠĠĠ Ġ) Ġ= Ġthis . password Ġ== Ġpassword Ġ&& Ġthis . username Ġ== Ġusername Ċ } Ċ Ċ /** Ċ Ġ* ĠAuthentication ĠAPI Ġendpoints . Ċ Ġ*/ Ċ @ RestController Ċ @ RequestMapping ("/ api / v 1 / auth ") Ċ class ĠAuth Controller ( ĊĠĠĠ Ġprivate Ġval Ġsingle User : ĠSingle User , ĊĠĠĠ Ġprivate Ġval Ġjwt Config : ĠJwt Config Ċ ) Ġ{ ĊĊĠĠĠ Ġclass ĠLogin RequestBody ( ĊĠĠĠĠĠĠĠ Ġval Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġpassword : ĠString ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEndpoint Ġfor Ġuser Ġauthentication . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PostMapping ("/ login ", Ġproduces Ġ= Ġ[ MediaType . APPLICATION _ JSON _ VALUE ]) ĊĠĠĠ Ġfun Ġpost Login ( ĊĠĠĠĠĠĠĠ Ġ@ RequestBody Ġrequest Body : ĠLogin RequestBody ĊĠĠĠ Ġ) Ġ= Ġif Ġ( single User . isValid Single User ( request Body . username , Ġrequest Body . password )) ĊĠĠĠĠĠĠĠ ĠResponseEntity . ok ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" token " Ġto Ġjwt Config . jwt Token ( request Body . username )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ ĠResponseEntity . status ( HttpStatus . UN AUTHORIZ ED ). body (" Authentication Ġerror ") ĊĊĊĠĠĠ Ġ@ GetMapping ("/ random - number ", Ġproduces Ġ= Ġ[ MediaType . APPLICATION _ JSON _ VALUE ]) ĊĠĠĠ Ġfun ĠgetRandom Number () Ġ= ĠResponseEntity . ok ( ĊĠĠĠĠĠĠĠ Ġmap Of (" num " Ġto Ġ( Math . random () Ġ* Ġ 1 0 0 ). toInt ()) ĊĠĠĠ Ġ) Ċ } ĊĊĊ