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