package Ġes . at ru j illo . mj ml . rest Ċ Ċ import Ġes . at ru j illo . mj ml . config . http . basic auth . Http Components Client HttpRequest Factory Basic Auth Ċ import Ġes . at ru j illo . mj ml . exception . Invalid Mj ml Api Url Exception Ċ import Ġes . at ru j illo . mj ml . util . Regex Constants Ċ import Ġorg . apache . http . Http Host Ċ import Ġorg . springframework . http . client . support . Basic Authorization Interceptor Ċ import Ġorg . springframework . web . client . Rest Template Ċ Ċ import Ġjava . net . URI Ċ Ċ /** Ċ Ġ* ĠRest Ġclient Ġwith ĠBasic Auth Ġintegrated Ċ Ġ* ĠEach Ġrequest Ġgoing Ġto Ġhave Ġconfigured Ġthe Ġbasic Ġauth Ġtoken Ċ Ġ* Ġ{@ link Ġhttps :// developer . mozilla . org / en - US / docs / Web / HTTP / Authentication } Ċ Ġ* Ċ Ġ* Ġ@ author ĠAr nal do ĠTr uj illo Ċ Ġ* Ġ@ param Ġ< R > Ċ Ġ*/ Ċ internal Ġclass ĠBasic Auth RestClient < R >( api Endpoint : ĠString , Ġprivate Ġval Ġapplication ID : ĠString , Ġprivate Ġval Ġsecret Key : ĠString ) Ġ: ĠHttp RestClient < R >( api Endpoint ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrest Template Ġ= Ġconfigure Rest Template With Basic Auth () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Rest Template With Basic Auth (): ĠRest Template Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Regex Constants . URL _ REGEX . matches ( api Endpoint )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid Mj ml Api Url Exception () ĊĊĠĠĠĠĠĠĠ Ġval Ġuri Api Endpoint Ġ= ĠURI . create ( api Endpoint ) ĊĠĠĠĠĠĠĠ Ġval Ġhttp Host Ġ= ĠHttp Host ( uri Api Endpoint . host , Ġuri Api Endpoint . port , Ġuri Api Endpoint . scheme ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrest Template Ġ= ĠRest Template ( Http Components Client HttpRequest Factory Basic Auth ( http Host )) ĊĠĠĠĠĠĠĠ Ġrest Template . intercept ors . add ( Basic Authorization Interceptor ( application ID , Ġsecret Key )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrest Template ĊĠĠĠ Ġ} Ċ } Ċ