package Ġcom . flex so . flex same . network Ċ Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Response Ċ import Ġjava . io . IOException ĊĊ Ċ object ĠAuth Interceptor Ġ: ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġsession Token : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġval ĠAUTH _ NAME Ġ= Ġ" authorization " ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġsets Ġthe Ġsession Ġtoken ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġset Session Token ( session Token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . session Token Ġ= Ġsession Token ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġthe Ġraw Ġsession Ġtoken ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun ĠgetToken (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsession Token ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġintercept s Ġthe Ġrequest Ġand Ġif Ġit Ġdoes Ġnot Ġalready Ġcontains ĊĠĠĠĠ Ġ* Ġa Ġauth Ġheader Ġit Ġadds Ġthe Ġcurrent Ġtoken Ġproperly Ġformatted ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Builder Ġ= Ġrequest . newBuilder () ĊĠĠĠĠĠĠĠ Ġif Ġ( request . header ( AUTH _ NAME ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Builder . add Header ( AUTH _ NAME , Ġgenerate Formatted Token ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request Builder . build ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠForm ats Ġthe Ġtoken Ġin Ġthe Ġway Ġthe Ġapi Ġwill Ġaccept Ġit ĊĠĠĠĠ Ġ* Ġ*/ ĊĠĠĠ Ġfun Ġgenerate Formatted Token (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Bearer Ġ$ session Token " ĊĠĠĠ Ġ} Ċ Ċ }