package Ġcom . hex agon kt . http . server . servlet Ċ Ċ import Ġcom . hex agon kt . core . Multi Map Ċ import Ġcom . hex agon kt . http . model .* Ċ import Ġcom . hex agon kt . http . parse ContentType Ċ import Ġcom . hex agon kt . http . parse QueryString Ċ import Ġcom . hex agon kt . http . server . model . HttpServer Request Port Ċ import Ġjava . security . cert . X 5 0 9 Certificate Ċ import Ġjak arta . servlet . http . HttpServletRequest Ċ Ċ internal Ġabstract Ġclass ĠServlet Request Adapter ( req : ĠHttpServletRequest ) Ġ: ĠHttp Server Request Port Ġ{ ĊĊĠĠĠ Ġprivate Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ER TIFICATE _ ATTRIBUTE Ġ= Ġ" jak arta . servlet . request . X 5 0 9 Certificate " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġval Ġcertificate Chain : ĠList < X 5 0 9 Certificate > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġ( req . getAttribute ( CER TIFICATE _ ATTRIBUTE ) Ġas ? ĠArray < X 5 0 9 Certificate >) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġaccept : ĠList < ContentType > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġreq . getHeaders (" accept ") ?. toList ()?. map Ġ{ Ġparse ContentType ( it ) Ġ} Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcontent Length : ĠLong Ġby Ġlazy Ġ{ Ġreq . content Length . to Long () Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġquery Parameters : ĠMulti Map < String , ĠString > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġparse QueryString ( req . queryString Ġ?: Ġ"") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġmethod : ĠHttpMethod Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHttpMethod . valueOf ( req . method ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġprotocol : ĠHttp Protocol Ġby Ġlazy Ġ{ ĠHttp Protocol . valueOf ( req . scheme . uppercase ()) Ġ} ĊĠĠĠ Ġoverride Ġval Ġhost : ĠString Ġby Ġlazy Ġ{ Ġreq . remote Host Ġ} ĊĠĠĠ Ġoverride Ġval Ġport : ĠInt Ġby Ġlazy Ġ{ Ġreq . server Port Ġ} ĊĠĠĠ Ġoverride Ġval Ġpath : ĠString Ġby Ġlazy Ġ{ Ġreq . servlet Path . if Empty Ġ{ Ġreq . path Info Ġ} Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcookies : ĠList < Http Cookie > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġreq . cookies ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ ĠHttp Cookie ( it . name , Ġit . value , Ġit . max Age . to Long (), Ġit . secure ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġheaders : ĠMulti Map < String , ĠString > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠMulti Map ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreq . header Names ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . lowercase () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. associate With Ġ{ Ġreq . getHeaders ( it ). toList () Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval ĠcontentType : ĠContentType ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġreq . contentType ?. let Ġ{ Ġparse ContentType ( it ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ