KeycloakUserClaimsValidator.java
package com.project.auth.application.auth.identity.internal;
import com.project.auth.application.auth.exception.InvalidKeycloakClaimsException;
import com.project.auth.application.auth.identity.KeycloakUserClaims;
import com.project.auth.domain.user.exception.DomainException;
import com.project.auth.domain.user.model.UserEmail;
import com.project.auth.domain.user.model.UserName;
final class KeycloakUserClaimsValidator {
private KeycloakUserClaimsValidator() {
}
static ValidatedKeycloakUserClaims validate(KeycloakUserClaims claims) {
if (claims == null
|| isBlank(claims.subject())
|| isBlank(claims.email())
|| isBlank(claims.name())) {
throw new InvalidKeycloakClaimsException();
}
try {
return new ValidatedKeycloakUserClaims(
claims.subject().trim(),
UserEmail.from(claims.email()),
UserName.from(claims.name())
);
} catch (DomainException exception) {
throw new InvalidKeycloakClaimsException();
}
}
private static boolean isBlank(String value) {
return value == null || value.isBlank();
}
}