package Ġno . nav . security . mock . oauth 2 . http Ċ Ċ import Ġcom . nim bus ds . oauth 2 . sdk . Grant Type Ċ import Ġcom . nim bus ds . oauth 2 . sdk . Token Request Ċ import Ġcom . nim bus ds . oauth 2 . sdk . auth . Client Authentication Ċ import Ġcom . nim bus ds . oauth 2 . sdk . http . HTTP Request Ċ import Ġcom . nim bus ds . openid . connect . sdk . Authentication Request Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Authorization Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Debugger Callback Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Debugger Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is End Session Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Jw ks Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Token Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . is Well Known Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . key Values ToMap Ċ import Ġno . nav . security . mock . oauth 2 . extensions . require PrivateKey Jwt Ċ import Ġno . nav . security . mock . oauth 2 . extensions . to Authorization Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . to End Session Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . to Issuer Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . to Jw ks Url Ċ import Ġno . nav . security . mock . oauth 2 . extensions . to Token Endpoint Url Ċ import Ġno . nav . security . mock . oauth 2 . grant . Token Exchange Grant Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . AUTHORIZATION Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . DEBUG GER Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . DEBUG GER _ CALLBACK Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . END _ SESSION Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . FA V ICON Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . JW KS Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . TOKEN Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . UNKNOWN Ċ import Ġno . nav . security . mock . oauth 2 . http . RequestType . W ELL _ KNOWN Ċ import Ġno . nav . security . mock . oauth 2 . missing Parameter Ċ import Ġokhttp 3 . Headers Ċ import Ġokhttp 3 . Http Url Ċ Ċ data Ġclass ĠOAuth 2 HttpRequest ( ĊĠĠĠ Ġval Ġheaders : ĠHeaders , ĊĠĠĠ Ġval Ġmethod : ĠString , ĊĠĠĠ Ġval Ġoriginal Url : ĠHttp Url , ĊĠĠĠ Ġval Ġbody : ĠString ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġval Ġurl : ĠHttp Url Ġget () Ġ= Ġproxy Aware Url () ĊĠĠĠ Ġval Ġform Parameters : ĠParameters Ġ= ĠParameters ( body ) ĊĠĠĠ Ġval Ġcookies : ĠMap < String , ĠString > Ġ= Ġheaders [" Cookie "] ?. key Values ToMap ("; ") Ġ?: Ġempty Map () ĊĊĠĠĠ Ġfun Ġas Token Exchange Request (): ĠToken Request Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠhttpRequest : ĠHTTP Request Ġ= Ġthis . as Nim bus HTTP Request () ĊĠĠĠĠĠĠĠ Ġval Ġclient Authentication Ġ= ĠClient Authentication . parse ( httpRequest ). require PrivateKey Jwt ( this . url . toString (), Ġ 1 2 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġtoken Exchange Grant Ġ= ĠToken Exchange Grant . parse ( form Parameters . map ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠToken Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . url . to Uri (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclient Authentication , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Exchange Grant , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Parameters . map . map Values Ġ{ Ġmutable ListOf ( it . value ) Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" Member Visibility Can Be Private ") ĊĠĠĠ Ġfun Ġas Nim bus HTTP Request (): ĠHTTP Request Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠHTTP Request ( HTTP Request . Method . valueOf ( method ), Ġurl . to Url ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders . forEach Ġ{ Ġheader Ġ-> Ġthis . setHeader ( header . first , Ġheader . second ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Ġ= Ġbody ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġas Nim bus Token Request (): ĠToken Request Ġ= ĊĠĠĠĠĠĠĠ ĠToken Request . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . as Nim bus HTTP Request () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġfun Ġas Authentication Request (): ĠAuthentication Request Ġ= ĠAuthentication Request . parse ( this . url . to Uri ()) ĊĊĠĠĠ Ġfun Ġtype () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġurl . is Well Known Url () Ġ-> ĠW ELL _ KNOWN ĊĠĠĠĠĠĠĠ Ġurl . is Authorization Endpoint Url () Ġ-> ĠAUTH ORIZ ATION ĊĠĠĠĠĠĠĠ Ġurl . is Token Endpoint Url () Ġ-> ĠTOKEN ĊĠĠĠĠĠĠĠ Ġurl . is End Session Endpoint Url () Ġ-> ĠEND _ SESSION ĊĠĠĠĠĠĠĠ Ġurl . is Jw ks Url () Ġ-> ĠJ W KS ĊĠĠĠĠĠĠĠ Ġurl . is Debugger Url () Ġ-> ĠDEBUG GER ĊĠĠĠĠĠĠĠ Ġurl . is Debugger Callback Url () Ġ-> ĠDEBUG GER _ CALLBACK ĊĠĠĠĠĠĠĠ Ġurl . encoded Path Ġ== Ġ"/ favicon . ico " Ġ-> ĠF AV ICON ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠUNKNOWN ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgrant Type (): ĠGrant Type Ġ= ĊĠĠĠĠĠĠĠ Ġthis . form Parameters . map [" grant _ type "] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . if Blank Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠGrant Type ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmissing Parameter (" grant _ type ") ĊĊĠĠĠ Ġfun Ġto Well Known () Ġ= ĊĠĠĠĠĠĠĠ ĠWell Known ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissuer Ġ= Ġthis . proxy Aware Url (). to Issuer Url (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthorization Endpoint Ġ= Ġthis . proxy Aware Url (). to Authorization Endpoint Url (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Endpoint Ġ= Ġthis . proxy Aware Url (). to Token Endpoint Url (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Session Endpoint Ġ= Ġthis . proxy Aware Url (). to End Session Endpoint Url (). toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj w ks Uri Ġ= Ġthis . proxy Aware Url (). to Jw ks Url (). toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġinternal Ġfun Ġproxy Aware Url (): ĠHttp Url Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhost header Ġ= Ġthis . headers [" host "] ĊĠĠĠĠĠĠĠ Ġval Ġproto Ġ= Ġthis . headers [" x - for warded - proto "] ĊĠĠĠĠĠĠĠ Ġval Ġport Ġ= Ġthis . headers [" x - for warded - port "] ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( host header Ġ!= Ġnull Ġ&& Ġproto Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttp Url . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. scheme ( proto ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. host ( host header ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġport ?. toInt ()?. let Ġ{ Ġport ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. encoded Path ( original Url . encoded Path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ( original Url . query ). build () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Url ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠParameters ( val Ġparameter String : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap : ĠMap < String , ĠString > Ġ= Ġparameter String ?. key Values ToMap ("& ") Ġ?: Ġempty Map () ĊĠĠĠĠĠĠĠ Ġfun Ġget ( name : ĠString ): ĠString ? Ġ= Ġmap [ name ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ enum Ġclass ĠRequest Type Ġ{ ĊĠĠĠ ĠW ELL _ KNOWN , ĠAUTH ORIZ ATION , ĠTOKEN , ĠEND _ SESSION , ĠJ W KS , ĊĠĠĠ ĠDEBUG GER , ĠDEBUG GER _ CALLBACK , ĠF AV ICON , ĠUNKNOWN Ċ } Ċ