package Ġorg . v accine impact . order ly web . security . clients Ċ Ċ import Ġorg . pac 4 j . core . context . Http Constants Ċ import Ġorg . pac 4 j . spark java . Default Http Action Adapter Ċ import Ġorg . pac 4 j . spark java . Spark Web Context Ċ import Ġorg . v accine impact . order ly web . Direct Action Context Ċ import Ġorg . v accine impact . order ly web . Serializer Ċ import Ġorg . v accine impact . order ly web . add Default Response Headers Ċ import Ġorg . v accine impact . order ly web . errors . Expired Token Ċ import Ġorg . v accine impact . order ly web . errors . Missing Required Permission Error Ċ import Ġorg . v accine impact . order ly web . models . Error Info Ċ import Ġorg . v accine impact . order ly web . models . Result Ċ import Ġorg . v accine impact . order ly web . models . Result Status Ċ import Ġorg . v accine impact . order ly web . security . authorization . mis matched URL Ċ import Ġorg . v accine impact . order ly web . security . authorization . missing Permissions Ċ Ċ class ĠAPI Action Adaptor ( private Ġval Ġclients : ĠList < Order ly Web Token Credential Client >) Ġ: ĠDefault Http Action Adapter () Ċ { ĊĠĠĠ Ġprivate Ġfun Ġun authorized Response ( e : ĠExp ired Token ?): ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSerializer . instance . toJson ( Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Status . FAILURE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ?. problems Ġ?: Ġclients . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . error Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġforbidden Response ( authentication Errors : ĠList < Error Info >): ĠString Ġ= ĠSerializer . instance . toJson ( Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult Status . FAILURE , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauthentication Errors ĊĠĠĠ Ġ)) ĊĊĊĠĠĠ Ġoverride Ġfun Ġadapt ( code : ĠInt , Ġcontext : ĠSpark Web Context ): ĠAny ? Ġ= Ġwhen Ġ( code ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠHttp Constants . UN AUTHORIZ ED Ġ-> ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġe Ġ= Ġcontext . session Store . get ( context , Ġ" token _ exception ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Default Response Headers ( context . response ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspark . Spark . halt ( code , Ġun authorized Response ( e Ġas ĠExp ired Token ? )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠHttp Constants . FOR BID DEN Ġ-> ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Default Response Headers ( context . response ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠDirect Action Context ( context ). user Profile !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmis matched URL Ġ= Ġprofile . mis matched URL ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġauthentication Errors Ġ= Ġmutable ListOf < Error Info >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mis matched URL Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthentication Errors . add ( Error Info (" for bidden ", Ġmis matched URL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmissing Permissions Ġ= Ġprofile . missing Permissions ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( missing Permissions . any ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthentication Errors . addAll ( Missing Required Permission Error ( missing Permissions ). problems ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġspark . Spark . halt ( code , Ġforbidden Response ( authentication Errors )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . adapt ( code , Ġcontext ) ĊĠĠĠ Ġ} Ċ } Ċ