in serverless-ui/jwt-stack/src/main/java/com/awssamples/server/BasicJwtService.java [146:180]
public ClientConfig getClientConfig() {
try {
Credentials credentials;
if (SharedPermissions.isRunningInLambda()) {
// Running in Lambda, get session token
credentials = Credentials.builder()
.accessKeyId(System.getenv("AWS_ACCESS_KEY_ID"))
.secretAccessKey(System.getenv("AWS_SECRET_ACCESS_KEY"))
.sessionToken(System.getenv("AWS_SESSION_TOKEN"))
.build();
} else {
// Running locally, get session token
credentials = stsClient.getSessionToken().credentials();
}
DescribeEndpointRequest describeEndpointRequest = DescribeEndpointRequest.builder()
.endpointType("iot:Data-ATS")
.build();
DescribeEndpointResponse describeEndpointResponse = IotClient.create().describeEndpoint(describeEndpointRequest);
ClientConfig clientConfig = new ClientConfig();
clientConfig.accessKeyId = credentials.accessKeyId();
clientConfig.secretAccessKey = credentials.secretAccessKey();
clientConfig.sessionToken = credentials.sessionToken();
clientConfig.endpointAddress = describeEndpointResponse.endpointAddress();
clientConfig.region = DefaultAwsRegionProviderChain.builder().build().getRegion().toString();
clientConfig.clientId = UUID.randomUUID().toString();
return clientConfig;
} catch (Exception e) {
log("e: " + e.getMessage());
throw new RuntimeException(e);
}
}