no.nav.common.auth.openam.sbs.OpenAMUserInfoService Maven / Gradle / Ivy
The newest version!
package no.nav.common.auth.openam.sbs;
import no.nav.brukerdialog.security.domain.IdentType;
import no.nav.common.auth.SsoToken;
import no.nav.common.auth.Subject;
import no.nav.sbl.rest.RestUtils;
import no.nav.sbl.util.StringUtils;
import javax.ws.rs.client.Client;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import static java.util.Optional.empty;
import static java.util.Optional.of;
import static java.util.Optional.ofNullable;
import static java.util.stream.Collectors.toMap;
import static no.nav.sbl.rest.RestUtils.DEFAULT_CONFIG;
import static no.nav.sbl.util.StringUtils.of;
public class OpenAMUserInfoService {
public static final String PARAMETER_UID = "uid";
public static final String PARAMETER_SECURITY_LEVEL = "SecurityLevel";
public static final String BASE_PATH = "/identity/json/attributes";
private final URI endpointURL;
private final Client client = RestUtils.createClient(DEFAULT_CONFIG.withDisableParameterLogging(true));
private final List subjectAttributes;
private final OpenAMEventListener openAMEventListener;
@Deprecated
public OpenAMUserInfoService(URI endpointURL) {
this(OpenAmConfig.builder().restUrl(endpointURL.toString()).build());
}
public OpenAMUserInfoService(OpenAmConfig openAmConfig) {
this.openAMEventListener = openAmConfig.openAMEventListener;
this.endpointURL = resolveEndpointURL(openAmConfig);
this.subjectAttributes = subjectAttributes(openAmConfig);
}
private static List subjectAttributes(OpenAmConfig openAmConfig) {
List attributes = new ArrayList<>();
attributes.add(PARAMETER_UID);
attributes.add(PARAMETER_SECURITY_LEVEL);
ofNullable(openAmConfig.additionalAttributes).ifPresent(attributes::addAll);
return attributes;
}
private static URI resolveEndpointURL(OpenAmConfig openAmConfig) {
String endpoint = openAmConfig.restUrl;
URI uri = URI.create(endpoint);
String scheme = uri.getScheme();
if (StringUtils.nullOrEmpty(scheme)) {
throw new IllegalStateException(endpoint);
}
return uri;
}
public Optional convertTokenToSubject(String token) {
return getUserInfo(token, subjectAttributes).flatMap(openAMAttributes -> createUserInfo(openAMAttributes, token));
}
public Optional
© 2015 - 2025 Weber Informatics LLC | Privacy Policy