Credential.java
package no.nav.data.common.security.dto;
import lombok.Value;
import no.nav.data.common.security.domain.Auth;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import java.util.Optional;
@Value
public class Credential {
String accessToken;
Auth auth;
public Credential(String accessToken, Auth auth) {
this.accessToken = accessToken;
this.auth = auth;
}
public Credential(String accessToken) {
this(accessToken, null);
}
public Credential(Auth auth) {
this(null, auth);
}
public boolean hasAuth() {
return auth != null;
}
public String getAccessToken() {
return hasAuth() ? auth.getAccessToken() : accessToken;
}
public static Optional<Credential> getCredential() {
return Optional.ofNullable(SecurityContextHolder.getContext().getAuthentication())
.filter(Authentication::isAuthenticated)
.map(authentication -> authentication.getCredentials() instanceof Credential c ? c : null);
}
}