public ClientConfig getClientConfig()

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);
        }
    }