/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠOn a ĠSystems , ĠInc Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġorg . smart register . fhir core . api Ċ Ċ import Ġandroid . content . Context Ċ import Ġokhttp 3 . Interceptor Ċ import Ġorg . smart register . fhir core . auth . secure . Secure Config Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠOAuth Interceptor ( context : ĠContext ) Ġ: ĠInter ceptor Ġ{ ĊĠ Ġprivate Ġval ĠmContext : ĠContext Ġ= Ġcontext ĊĊĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): Ġokhttp 3 . Response Ġ{ ĊĠĠĠ ĠTim ber . i (" Intercept ed Ġrequest Ġfor Ġauth Ġheaders Ġif Ġneeded ") ĊĊĠĠĠ Ġvar Ġrequest Ġ= Ġchain . request () ĊĊĠĠĠ Ġif Ġ(! request . url . path Segments . contains All ( mutable ListOf (" protocol ", Ġ" openid - connect ", Ġ" token ")) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠ Ġval Ġtoken Ġ= ĠSecure Config ( mContext ). retrieve Session Token () ĊĠĠĠĠĠ Ġif Ġ( token . isNull OrEmpty ()) Ġthrow ĠIllegalStateException (" No Ġsession Ġtoken Ġfound ") ĊĊĠĠĠĠĠ ĠTim ber . i (" Pass ing Ġauth Ġtoken Ġfor Ġ% s ", Ġrequest . url . toString ()) ĊĊĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder (). add Header (" Authorization ", Ġ" Bearer Ġ$ token "). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠ Ġ} Ċ } Ċ