public AwsCredentialsProvider vendToken()

in TokenVendingLayer/src/main/java/tenant/vendinglayer/token/JwtTokenVendor.java [52:72]


    public AwsCredentialsProvider vendToken() {
        try {
            String token = getBearerToken(this.headers);
            SignedJWT signedJWT = SignedJWT.parse(token);

            JWSVerifier verifier = new MACVerifier(sharedSecret);

            if(!signedJWT.verify(verifier)) {
                throw new JOSEException("Unable to verify JWT token");
            }

            tenant = (String) signedJWT.getJWTClaimsSet().getClaim(TENANT_CLAIM);
        } catch (JOSEException | ParseException e) {
            LOGGER.info("Error validating JWT", e);
            throw new PolicyAssumptionException("Unable to verify your identity.");
        }

        policyGenerator.tenant(tenant);
        String scopedPolicy = policyGenerator.generatePolicy();
        return getCredentialsForTenant(scopedPolicy, tenant);
    }