package com.ruoyi.web.service; import com.ruoyi.common.core.core.domain.AjaxResult; import com.ruoyi.common.core.core.domain.model.LoginBody; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.SpringUtils; import com.ruoyi.system.domain.SysClient; /** * 授权策略 * * @author Michelle.Chung */ public interface IAuthStrategy { String BASE_NAME = "AuthStrategy"; /** * 登录 */ static String login(LoginBody loginBody, SysClient client) { // 授权类型和客户端id String clientId = loginBody.getClientId(); String grantType = loginBody.getGrantType(); String beanName = grantType + BASE_NAME; if (!SpringUtils.containsBean(beanName)) { throw new ServiceException("授权类型不正确!"); } IAuthStrategy instance = SpringUtils.getBean(beanName); instance.validate(loginBody); return instance.login(clientId, loginBody, client); } /** * 参数校验 */ void validate(LoginBody loginBody); /** * 登录 */ String login(String clientId, LoginBody loginBody, SysClient client); }