in app/aws/Federation.scala [91:116]
def assumeRole(
username: String,
roleArn: String,
permission: Permission,
sts: StsClient,
duration: Duration
): Credentials = {
val requestBuilder = AssumeRoleRequest
.builder()
.roleArn(roleArn)
.roleSessionName(username)
.durationSeconds(duration.getSeconds.toInt)
permission.policy.foreach { policy =>
requestBuilder.policy(policy)
}
permission.managedPolicyArns.foreach { managedPolicyArns =>
requestBuilder.policyArns(
managedPolicyArns.map { arn =>
PolicyDescriptorType.builder().arn(arn).build()
}.asJava
)
}
val request = requestBuilder.build()
val response = sts.assumeRole(request)
response.credentials()
}