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

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

There is a newer version: 1.0.7
Show newest version
package com.flyfish.oauth.entry;

import com.flyfish.oauth.configuration.OAuth2SsoProperties;
import com.flyfish.oauth.domain.OAuthSSOToken;
import com.flyfish.oauth.domain.raw.SSOUserInfo;
import com.flyfish.oauth.utils.OAuthRequestParser;

import javax.servlet.http.HttpServletRequest;

/**
 * 定义认证接入点,处理认证请求
 *
 * @author wangyu
 */
public interface AuthenticationEntryPoint {

    /**
     * 初始化配置(自定义配置)
     *
     * @param properties 配置
     */
    void configure(OAuth2SsoProperties properties);

    /**
     * 检查accessToken的有效性,以确定是否需要跳转登录
     *
     * @param accessToken 访问令牌
     * @return 结果
     */
    boolean checkAccessToken(String accessToken);

    /**
     * 获取配置,可能外部需要
     *
     * @return 结果
     */
    OAuth2SsoProperties getProperties();

    /**
     * 获取AccessToken
     *
     * @return 结果
     */
    OAuthSSOToken getClientToken();

    /**
     * 根据授权码和鉴权类型获取授权信息
     *
     * @param code      授权
     * @param grantType 鉴权类型
     * @return 获取用户信息
     */
    OAuthSSOToken getAccessToken(String code, String grantType);

    /**
     * 根据授权码和鉴权类型获取授权信息
     *
     * @param code      授权
     * @param grantType 鉴权类型
     * @param redirect  额外的跳转
     * @return 获取用户信息
     */
    OAuthSSOToken getAccessToken(String code, String grantType, String redirect);

    /**
     * 刷新当前已经失效的token,使用refreshToken
     *
     * @param refreshToken 刷新token
     * @return 结果
     */
    OAuthSSOToken refreshAccessToken(String refreshToken);

    /**
     * 通过AccessToken查询用户数据
     *
     * @param accessToken token信息
     */
    SSOUserInfo getUserInfo(String accessToken);

    /**
     * 跳转登录页,主要用于上下文保存
     *
     * @param context 上下文
     */
    String redirectUrl(OAuthRequestParser context);

    /**
     * 登出。触发登出操作
     *
     * @param request 请求
     * @return 结果
     */
    boolean logout(HttpServletRequest request);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy