
com.flyfish.oauth.entry.AbstractAuthenticationEntryPoint Maven / Gradle / Ivy
package com.flyfish.oauth.entry;
import com.flyfish.oauth.client.RestClient;
import com.flyfish.oauth.configuration.OAuth2SsoProperties;
import com.flyfish.oauth.domain.OAuthSSOToken;
import com.flyfish.oauth.domain.raw.SSOUserInfo;
import com.flyfish.oauth.utils.JacksonUtil;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
public abstract class AbstractAuthenticationEntryPoint implements AuthenticationEntryPoint {
public static final String AUTH_HEADER = "Authorization";
private static final Logger logger = LoggerFactory.getLogger(AbstractAuthenticationEntryPoint.class);
@Override
public boolean checkAccessToken(String accessToken) {
try {
OAuth2SsoProperties properties = getProperties();
String basicString = properties.getClientId() + ":" + properties.getClientSecret();
RestClient.create()
.url(properties.getCheckAccessTokenUri())
.addHeader(AUTH_HEADER, "Basic " + Base64.encodeBase64String(basicString.getBytes()))
.addHeader("Cache-Control", "no-cache")
.addParam("token", accessToken)
.build()
.executeForString();
return true;
} catch (IOException | RestClient.RestClientException e) {
logger.error(e.getMessage());
}
return false;
}
@Override
public OAuthSSOToken getAccessToken(String code, String grantType, String redirect) {
return getAccessToken(code, grantType);
}
@Override
public SSOUserInfo getUserInfo(String accessToken) {
try {
String result = RestClient.create()
.url(getProperties().getUserInfoUri())
.addHeader(AUTH_HEADER, OAuthSSOToken.BEARER_TYPE + " " + accessToken)
.build()
.executeForString();
return JacksonUtil.fromJson(result, SSOUserInfo.class);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy