in fractions/microprofile/microprofile-jwt/src/main/java/org/wildfly/swarm/microprofile/jwtauth/deployment/auth/config/JWTAuthContextInfoProvider.java [69:136]
Optional<JWTAuthContextInfo> getOptionalContextInfo() {
// Log the config values
log.debugf("init, publicKeyPemEnc=%s, issuedBy=%s, expGracePeriodSecs=%d, jwksRefreshInterval=%d",
publicKeyPemEnc.orElse("missing"), issuedBy, expGracePeriodSecs.get(), jwksRefreshInterval.get());
/*
FIXME Due to a bug in MP-Config (https://github.com/wildfly-extras/wildfly-microprofile-config/issues/43) we need to set all
values to "NONE" as Optional Strings are populated with a ConfigProperty.defaultValue if they are absent. Fix this when MP-Config
is repaired.
*/
if (NONE.equals(publicKeyPemEnc.get()) && NONE.equals(jwksUri.get()) &&
NONE.equals(super.getMpJwtPublicKey().get()) && NONE.equals(super.getMpJwtLocation().get())) {
return Optional.empty();
}
log.warn("The use of all mpjwt.* properties is deprecated, use thorntail.microprofile.jwt.* properties instead");
JWTAuthContextInfo contextInfo = new JWTAuthContextInfo();
// Look to MP-JWT values first
if (super.getMpJwtPublicKey().isPresent() && !NONE.equals(super.getMpJwtPublicKey().get())) {
super.decodeMpJwtPublicKey(contextInfo);
} else if (publicKeyPemEnc.isPresent() && !NONE.equals(publicKeyPemEnc.get())) {
try {
RSAPublicKey pk = (RSAPublicKey) KeyUtils.decodePublicKey(publicKeyPemEnc.get());
contextInfo.setSignerKey(pk);
} catch (Exception e) {
throw new DeploymentException(e);
}
}
String mpJwtIssuer = super.getMpJwtIssuer();
if (mpJwtIssuer != null && !mpJwtIssuer.equals(NONE)) {
contextInfo.setIssuedBy(mpJwtIssuer);
} else if (issuedBy != null && !issuedBy.equals(NONE)) {
contextInfo.setIssuedBy(issuedBy);
}
Optional<Boolean> mpJwtRequireIss = super.getMpJwtRequireIss();
if (mpJwtRequireIss != null && mpJwtRequireIss.isPresent()) {
contextInfo.setRequireIssuer(mpJwtRequireIss.get());
} else {
// Default is to require iss claim
contextInfo.setRequireIssuer(true);
}
if (expGracePeriodSecs.isPresent()) {
contextInfo.setExpGracePeriodSecs(expGracePeriodSecs.get());
}
// The MP-JWT location can be a PEM, JWK or JWKS
Optional<String> mpJwtLocation = super.getMpJwtLocation();
if (mpJwtLocation.isPresent() && !NONE.equals(mpJwtLocation.get())) {
contextInfo.setPublicKeyLocation(super.getMpJwtLocation().get());
} else if (jwksUri.isPresent() && !NONE.equals(jwksUri.get())) {
contextInfo.setPublicKeyLocation(jwksUri.get());
}
if (jwksRefreshInterval.isPresent()) {
contextInfo.setJwksRefreshInterval(jwksRefreshInterval.get());
}
if (super.getTokenHeader() != null) {
contextInfo.setTokenHeader(super.getTokenHeader());
}
SmallryeJwtUtils.setContextTokenCookie(contextInfo, super.getTokenCookie());
if (super.getDefaultGroupsClaim() != null && super.getDefaultGroupsClaim().isPresent()) {
contextInfo.setDefaultGroupsClaim(super.getDefaultGroupsClaim().get());
}
return Optional.of(contextInfo);
}