package Ġcom . rent my car . rent my car . network . interceptor Ċ Ċ import Ġcom . rent my car . rent my car . App Preference Ċ import Ġcom . rent my car . rent my car . Rent My Car Application Ċ import Ġokhttp 3 . Interceptor Ċ import Ġokhttp 3 . Request Ċ import Ġokhttp 3 . Response Ċ Ċ class ĠJwt Interceptor : ĠInter ceptor Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpreference Ġ= ĠApp Preference ( Rent My Car Application . context ) ĊĊĠĠĠ Ġoverride Ġfun Ġintercept ( chain : ĠInter ceptor . Chain ): ĠResponse Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠAlways Ġadd ĠJWT Ġtoken Ġto Ġrequest Ġ( exception Ġauth Ġroutes Ġsuch Ġas Ġlogin / register ) ĊĠĠĠĠĠĠĠ Ġvar Ġrequest : ĠRequest Ġ= Ġchain . request () ĊĠĠĠĠĠĠĠ Ġval Ġrequires Authentication : ĠBoolean Ġ= Ġ! request . url . toString (). contains (" auth ") ĊĠĠĠĠĠĠĠ Ġval Ġtoken Ġ= Ġpreference . getToken () ĊĠĠĠĠĠĠĠ Ġif Ġ( requires Authentication ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Authorization ", Ġ" Bearer Ġ$ token ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchain . proceed ( request ) ĊĠĠĠ Ġ} Ċ }