com.flyfish.oauth.entry.AuthenticationEntryPoint Maven / Gradle / Ivy
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);
}