/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠDaniel ĠA har on Ċ Ġ*/ Ċ Ċ package Ġus . ah aron . s md f . core . backend Ċ Ċ import Ġcom . amazonaws . auth . AWSC redentials Provider Ċ import Ġcom . amazonaws . auth . ST SA ss ume Role Session Credentials Provider Ċ import Ġcom . amazonaws . services . simp les ystem s management . AW SS imple Systems Management Ċ import Ġcom . amazonaws . services . simp les ystem s management . model . Get Parameter Request Ċ import Ġmu . K Logger Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject ĊĊ Ċ internal Ġinterface ĠAssume Role able Ġ{ ĊĊĠĠĠ Ġval Ġs sm : ĠAW SS imple Systems Management ĊĊĠĠĠ Ġfun Ġget Credentials ( parameter Name : ĠString , Ġsession Name : ĠString ): ĠAW SC redentials Provider Ċ } ĊĊ Ċ /** Ċ Ġ* ĠM ixin Ġfor Ġa Ġclass Ġthat Ġneeds Ġcredentials Ġfor Ġan Ġassumed ĠIAM Ġrole . Ċ Ġ*/ Ċ internal Ġclass ĠAssume Role Ġ: ĠAssume Role able , ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog : ĠK Logger Ġby Ġinject Ġ{ Ġparameters Of ( this :: class . java . simple Name ) Ġ} ĊĠĠĠ Ġoverride Ġval Ġs sm : ĠAW SS imple Systems Management Ġby Ġinject () ĊĊĊĠĠĠ Ġoverride Ġfun Ġget Credentials ( parameter Name : ĠString , Ġsession Name : ĠString ): ĠAW SC redentials Provider Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġrole ĠAR N Ġfrom Ġthe Ġparameter Ġstore . ĊĠĠĠĠĠĠĠ Ġval Ġparam Request Ġ= ĠGet Parameter Request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Name ( parameter Name ) ĊĠĠĠĠĠĠĠ Ġval Ġrole Arn Ġ= Ġs sm . getParameter ( param Request ). parameter . value ĊĠĠĠĠĠĠĠ Ġlog . debug Ġ{ Ġ" Role ĠAR N : Ġ Ġ$ role Arn " Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġan ĠIAM Ġcredentials Ġprovider Ġthat Ġassumes Ġthe Ġnotification Ġhandler 's Ġrole . ĊĠĠĠĠĠĠĠ Ġreturn ĠST SA ss ume Role Session Credentials Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. Builder ( role Arn , Ġsession Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ } Ċ