306 final CommonProfile profile =
new CommonProfile();
308 String nonceResponse =
getFirstClaim(userInfoResponse, JwtClaimName.NONCE);
310 logger.debug(
"Session nonce: '{}'", nonceSession);
311 if (!StringHelper.equals(nonceSession, nonceResponse)) {
312 logger.error(
"User info response: nonce is not matching.");
313 throw new CommunicationException(
"Nonce is not match");
316 String
id =
getFirstClaim(userInfoResponse, JwtClaimName.USER_NAME);
317 if (StringHelper.isEmpty(
id)) {
318 id =
getFirstClaim(userInfoResponse, JwtClaimName.SUBJECT_IDENTIFIER);
322 List<ClaimToAttributeMapping> claimMappings = this.
appConfiguration.getOpenIdClaimMapping();
323 if ((claimMappings == null) || (claimMappings.size() == 0)) {
324 logger.info(
"Using default claims to attributes mapping");
325 profile.setUserName(
id);
326 profile.setEmail(
getFirstClaim(userInfoResponse, JwtClaimName.EMAIL));
328 profile.setDisplayName(
getFirstClaim(userInfoResponse, JwtClaimName.NAME));
329 profile.setFirstName(
getFirstClaim(userInfoResponse, JwtClaimName.GIVEN_NAME));
330 profile.setFamilyName(
getFirstClaim(userInfoResponse, JwtClaimName.FAMILY_NAME));
331 profile.setZone(
getFirstClaim(userInfoResponse, JwtClaimName.ZONEINFO));
332 profile.setLocale(
getFirstClaim(userInfoResponse, JwtClaimName.LOCALE));
334 for (ClaimToAttributeMapping mapping : claimMappings) {
335 String attribute = mapping.getAttribute();
336 String value =
getFirstClaim(userInfoResponse, mapping.getClaim());
337 profile.addAttribute(attribute, value);
338 logger.trace(
"Adding attribute '{}' with value '{}'", attribute, value);
String getFirstClaim(final UserInfoResponse userInfoResponse, final String claimName)
Definition: OpenIdClient.java:345
static final String NONCE_PARAMETER
Definition: OpenIdClient.java:57
String getName()
Definition: OpenIdClient.java:178
C appConfiguration
Definition: OpenIdClient.java:64
final Logger logger
Definition: OpenIdClient.java:54