package Ġcom . d val ve zon . kot link to rex ample Ċ Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . Test Resource . test Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . HealthCheck Resource . health Check Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . Login Resource . login Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . Permission Resource . permission Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . Root Resource . root Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . resource . User Resource . user Resources Ċ import Ġcom . d val ve zon . kot link to rex ample . service . Login Service Ċ import Ġcom . d val ve zon . kot link to rex ample . utils .* Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġio . ktor . application . Application Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . application . install Ċ import Ġio . ktor . application . log Ċ import Ġio . ktor . auth . Authentication Ċ import Ġio . ktor . auth . basic Ċ import Ġio . ktor . auth . jwt . jwt Ċ import Ġio . ktor . features .* Ċ import Ġio . ktor . http . HttpHeaders Ċ import Ġio . ktor . http . HttpMethod Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . jackson . jackson Ċ import Ġio . ktor . response . respond Ċ import Ġio . ktor . routing . Routing Ċ import Ġio . ktor . routing . routing Ċ import Ġio . ktor . util . K tor Experimental API Ċ Ċ @ K tor Experimental API Ċ fun ĠApplication . main () Ġ{ ĊĠĠĠ Ġinstall ( Default Headers ) ĊĠĠĠ Ġinstall ( Call Logging ) ĊĠĠĠ Ġinstall ( Status Pages ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexception < Unexpected Exception > Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Critical Ġ- ĠUnexpected Ġexception Ġ- Ġmessage =' ${ exception . api Message }' ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( exception . http StatusCode , ĠFailure Response ( exception . cause s )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexception < ApiException > Ġ{ Ġexception Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( exception . http StatusCode , ĠFailure Response ( exception . cause s )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexception < Throwable > Ġ{ Ġcause Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Critical Ġ- ĠUn mapped Ġexception Ġ- Ġtime ='$ time '", Ġcause ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . respond ( HttpStatusCode . InternalServerError , ĠFailure Response ( listOf ( Throwable Error Cause ( time )))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġinstall ( C ORS ) Ġ{ ĊĠĠĠĠĠĠĠ Ġany Host () ĊĠĠĠĠĠĠĠ Ġallow Credentials Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . ContentType ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . Origin ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . Ref errer ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . UserAgent ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . AccessControl Request Headers ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . AccessControl Request Method ) ĊĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . Authorization ) ĊĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Head ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Options ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Patch ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Get ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Post ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Put ) ĊĠĠĠĠĠĠĠ Ġmethod ( HttpMethod . Delete ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġinstall ( Content Neg otiation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġj ack son Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġinstall ( Authentication ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbasic (" basic ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm Ġ= Ġ" default Realm " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Service . validate ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġjwt (" jwt ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverifier ( JWT . verifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm Ġ= Ġ" default Realm " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogin Service . validate ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġinstall ( Routing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrouting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhealth Check Resources () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot Resources () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Resources () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Resources () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Resources () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Resources () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }