44 final JsonNode payload,
47 final String tokenTypeRaw) {
49 if (config.requireSubject() && isBlank(claims.subject())) {
53 if (config.validateExpiration()) {
54 if (claims.expiresAt() ==
null) {
57 if (now.isAfter(claims.expiresAt().plus(config.clockSkew()))) {
60 }
else if (config.requireExpiration() && claims.expiresAt() ==
null) {
64 if (config.validateNotBefore() && claims.notBefore() !=
null) {
65 if (now.plus(config.clockSkew()).isBefore(claims.notBefore())) {
70 final String expectedIssuer = config.expectedIssuer();
71 if (expectedIssuer !=
null && !expectedIssuer.equals(claims.issuer())) {
75 if (!config.expectedAudience().isEmpty()) {
76 boolean matches =
false;
77 for (
final String value : claims.audience()) {
78 if (config.expectedAudience().contains(value)) {
88 if (tokenTypeRaw !=
null && claims.tokenType() ==
null) {
92 if (claims.tokenType() ==
TokenType.
APP && config.requireClientIdForAppTokens() && isBlank(claims.clientId())) {