package Ġdev . mr ber gin . ek sx Ċ Ċ import Ġsoftware . amazon . aw ssdk . auth . credentials .* Ċ import Ġsoftware . amazon . aw ssdk . auth . signer . Aws 4 Signer Ċ import Ġsoftware . amazon . aw ssdk . auth . signer . params . Aws 4 Pres ign er Params Ċ import Ġsoftware . amazon . aw ssdk . http . Sdk Http Full Request Ċ import Ġsoftware . amazon . aw ssdk . http . Sdk HttpMethod Ċ import Ġsoftware . amazon . aw ssdk . regions . Region Ċ import Ġsoftware . amazon . aw ssdk . services . sts . St s Client Ċ import Ġsoftware . amazon . aw ssdk . services . sts . model . Ass ume Role Request Ċ import Ġjava . net . URI Ċ import Ġjava . time . Clock Ċ import Ġjava . time . Instant Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThe Ġpurpose Ġof Ġthis Ġclass Ġis Ġto Ġful fil Ġto Ġfunctionality Ġprovided Ġat Ġthe Ġfollowing ĠURL Ċ Ġ* Ċ Ġ* Ġhttps :// aw sc li . amazonaws . com / v 2 / documentation / api / latest / reference / eks / get - token . html Ċ Ġ* Ċ Ġ* ĠThe Ġconstructor Ġparams Ġare Ġsupposed Ġto Ġbehave Ġas Ġif Ġyou Ġhave Ġcalled Ġ" aws Ġconfigure " Ġon Ġthe Ġcommand Ġline , Ġwhere Ċ Ġ* Ġyou Ġare Ġpromp ted Ġto Ġenter Ġ[ access KeyId ], Ġ[ secret AccessKey ] Ġ& Ġ[ region ] Ċ Ġ*/ Ċ class ĠAws E ks X ( ĊĠĠĠ Ġprivate Ġval Ġaccess KeyId : ĠString , ĊĠĠĠ Ġprivate Ġval Ġsecret AccessKey : ĠString , ĊĠĠĠ Ġprivate Ġval Ġregion : ĠString , Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġcredentials Provider Ġ= ĊĠĠĠĠĠĠĠ ĠStatic Credentials Provider . create ( Aws Basic Credentials . create ( access KeyId , Ġsecret AccessKey )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġfunction Ġis Ġto Ġbehave Ġas Ġif Ġyou Ġcalled : ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġaws Ġe ks Ġget - token Ġ-- cluster - name Ġ< value > Ġ[-- role - arn Ġ< value >] ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠThe Ġreturn Ġvalue Ġis Ġa Ġtoken Ġthat Ġyou Ġmay Ġuse Ġto Ġaccess Ġyour ĠE KS Ġmanaged ĠKubernetes ĠAPI ĠEndpoint ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun ĠgetToken ( ĊĠĠĠĠĠĠĠ Ġcluster Name : ĠString , ĊĠĠĠĠĠĠĠ Ġrole Arn : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġsdk Http Full Request ( region , Ġcluster Name ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcredentials Ġ= Ġif Ġ( role Arn Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Provider . resolve Credentials () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Provider . assume Role ( role Arn , Ġregion ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpres ign er Params Ġ= Ġaws 4 Pres ign er Params ( region , Ġcredentials ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsigned Request Ġ= ĠAws 4 Signer . create () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. pres ign ( request , Ġpres ign er Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. uri ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toByteArray () ĊĊĠĠĠĠĠĠĠ Ġval Ġencoded Url Ġ= ĠBase 6 4 . getUrl Encoder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. without Padding () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ToString ( signed Request ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ" k 8 s - aws - v 1 .$ encoded Url " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġaws 4 Pres ign er Params ( ĊĠĠĠĠĠĠĠ Ġregion : ĠString , ĊĠĠĠĠĠĠĠ Ġcredentials : ĠAws Credentials ĊĠĠĠ Ġ): ĠAws 4 Pres ign er Params Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠAws 4 Pres ign er Params . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. aws Credentials ( credentials ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. signing Region ( Region . of ( region )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. signing Name (" sts ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. signing Clock Override ( Clock . system UTC ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. expiration Time ( Instant . now (). plus Seconds ( 6 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsdk Http Full Request ( ĊĠĠĠĠĠĠĠ Ġregion : ĠString , ĊĠĠĠĠĠĠĠ Ġcluster Name : ĠString , ĊĠĠĠ Ġ): ĠS dk Http Full Request Ġ= ĠS dk Http Full Request ĊĠĠĠĠĠĠĠ Ġ. builder () ĊĠĠĠĠĠĠĠ Ġ. method ( Sdk HttpMethod . GET ) ĊĠĠĠĠĠĠĠ Ġ. uri ( URI (" https ", Ġ" sts .$ region . amazonaws . com ", Ġ"/", Ġnull )) ĊĠĠĠĠĠĠĠ Ġ. append Header (" x - k 8 s - aws - id ", Ġcluster Name ) ĊĠĠĠĠĠĠĠ Ġ. append Raw QueryParameter (" Action ", Ġ" Get Caller Identity ") ĊĠĠĠĠĠĠĠ Ġ. append Raw QueryParameter (" Version ", Ġ" 2 0 1 1 - 0 6 - 1 5 ") ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġprivate Ġfun ĠAws Credentials Provider . assume Role ( role : ĠString , Ġregion : ĠString ): ĠAws Credentials Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst s Credentials Ġ= ĠSt s Client . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. region ( Region . of ( region )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. credentials Provider ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. assume Role ( Ass ume Role Request . builder (). role Session Name (" E KS GetToken Auth "). role Arn ( role ). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. credentials () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAws Session Credentials . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġst s Credentials . access KeyId (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġst s Credentials . secret AccessKey (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġst s Credentials . session Token () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }