
com.hp.autonomy.searchcomponents.hod.authentication.HsodUserMetadataResolver Maven / Gradle / Ivy
package com.hp.autonomy.searchcomponents.hod.authentication;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.collect.ImmutableMap;
import com.hp.autonomy.hod.sso.HodUserMetadata;
import com.hp.autonomy.hod.sso.HodUserMetadataResolver;
import org.springframework.stereotype.Component;
import java.io.Serializable;
import java.util.Collections;
import java.util.Map;
@SuppressWarnings("WeakerAccess")
@Component
public class HsodUserMetadataResolver implements HodUserMetadataResolver {
public static final String LEGACY_USER_DISPLAY_NAME = "HAVEN_SEARCH_ONDEMAND_USERNAME";
public static final String USER_DISPLAY_NAME = "DisplayName";
@SuppressWarnings("unused")
public static final Map> METADATA_TYPES = ImmutableMap.>builder()
.put(LEGACY_USER_DISPLAY_NAME, String.class)
.put(USER_DISPLAY_NAME, String.class)
.build();
@Override
public HodUserMetadata resolve(final Map metadata) {
return new HodUserMetadata(findCorrectUsernameFromMetadata(metadata), Collections.emptyMap());
}
private String findCorrectUsernameFromMetadata(final Map metadata) {
final String displayName;
if (metadata.containsKey(USER_DISPLAY_NAME)) {
displayName = parseJsonNode(metadata.get(USER_DISPLAY_NAME));
} else if (metadata.containsKey(LEGACY_USER_DISPLAY_NAME)) {
displayName = parseJsonNode(metadata.get(LEGACY_USER_DISPLAY_NAME));
} else {
displayName = null;
}
return displayName;
}
private String parseJsonNode(final JsonNode jsonNode) {
if (jsonNode.isArray()) {
final JsonNode firstName = jsonNode.get(0);
return firstName != null ? firstName.asText() : null;
} else {
return jsonNode.asText();
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy