package com.fanruan.api.decision.login; import com.fr.decision.authorize.Passport; import com.fr.decision.authorize.impl.HttpPassport; import com.fr.decision.config.FSConfig; import com.fr.decision.webservice.v10.login.LoginService; import org.jetbrains.annotations.Nullable; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * @author richie * @version 10.0 * Created by richie on 2019-08-16 */ public class LoginKit { /** * 获取决策平台设置的认证类型 * * @return 认证对象 */ public static Passport getCurrentPassport() { return FSConfig.getInstance().getPassport(); } /** * 获取指定类型的通行证,如果不存在,就返回null * * @param type 通行证类型 * @param 类型 * @return 通行证 */ public static T getPassport(Class type) { return FSConfig.getInstance().getPassport(type); } /** * 获取http认证的地址 * * @return http认证地址 */ public static @Nullable String getHttpPassportUrl() { Passport passport = getCurrentPassport(); if (passport instanceof HttpPassport) { return ((HttpPassport) passport).getUrl(); } return null; } /** * 获取http认证的秘钥 * * @return http认证地址 */ public static @Nullable String getHttpPassportKey() { Passport passport = getCurrentPassport(); if (passport instanceof HttpPassport) { return ((HttpPassport) passport).getPublicKey(); } return null; } /** * 登录 * * @param req http请求 * @param res http响应 * @param loginRequest 登录请求信息 * @return 登录响应信息 * @throws Exception 登录过程中发生错误,则抛出此异常 */ public static OpenLoginResponse login(HttpServletRequest req, HttpServletResponse res, OpenLoginRequest loginRequest) throws Exception { return OpenLoginResponse.wrap(LoginService.getInstance().login(req, res, loginRequest.select())); } }