| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package org.dromara.web.service;
- import org.dromara.common.core.domain.model.LoginBody;
- import org.dromara.common.core.exception.ServiceException;
- import org.dromara.common.core.utils.SpringUtils;
- import org.dromara.system.domain.SysClient;
- import org.dromara.web.domain.vo.LoginVo;
- /**
- * 授权策略
- *
- * @author Michelle.Chung
- */
- public interface IAuthStrategy {
- String BASE_NAME = "AuthStrategy";
- /**
- * 登录
- */
- static LoginVo 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);
- /**
- * 登录
- */
- LoginVo login(String clientId, LoginBody loginBody, SysClient client);
- }
|