All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.flyfish.oauth.entry.AbstractAuthenticationEntryPoint Maven / Gradle / Ivy

There is a newer version: 1.0.7
Show newest version
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