package Ġid . walt . web wallet . backend . context Ċ Ċ import Ġcom . google . common . cache . Cache Builder Ċ import Ġcom . google . common . cache . Loading Cache Ċ import Ġid . walt . services . context . Context Ċ import Ġid . walt . services . context . W alt Id Context Manager Ċ import Ġid . walt . web wallet . backend . auth . JWT Service Ċ import Ġid . walt . web wallet . backend . auth . UserInfo Ċ import Ġio . jav al in . http . Handler Ċ Ċ object ĠWallet Context Manager Ġ: ĠW alt Id Context Manager () Ġ{ ĊĊĠĠĠ Ġval Ġuser Contexts : ĠLoading Cache < String , ĠContext > Ġ= ĠCache Builder . newBuilder (). maximum Size ( 2 5 6 ). build ( User Context Loader ) ĊĊĠĠĠ Ġfun ĠgetUser Context ( userInfo : ĠUserInfo ) Ġ= Ġuser Contexts . get ( userInfo . id ) ĊĊĠĠĠ Ġval Ġpre RequestHandler ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠHandler Ġ{ Ġctx Ġ-> ĠJWT Service . getUser Info ( ctx )?. let Ġ{ ĠsetCurrent Context ( getUser Context ( it )) Ġ} Ġ} ĊĊĠĠĠ Ġval Ġpost RequestHandler ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠHandler Ġ{ Ġctx Ġ-> Ġreset Current Context () Ġ} Ċ Ċ } Ċ