package com.iplatform.security.util;
|
|
import com.iplatform.base.PlatformLoginCallback;
|
import com.iplatform.base.callback.PlatformCallbackPostProcessor;
|
import com.iplatform.security.callback.EncryptPasswordLoginCallback;
|
import com.iplatform.security.callback.MobilePassCaptchaLoginCallback;
|
import com.iplatform.security.callback.NoneCaptchaLoginCallback;
|
import com.iplatform.security.callback.SimplePasswordLoginCallback;
|
import com.iplatform.security.callback.SmsCodeLoginCallback;
|
import com.iplatform.security.callback.ThirdPartyLoginCallback;
|
import com.iplatform.security.callback.WechatLoginCallback;
|
import com.walker.web.CaptchaType;
|
import com.walker.web.LoginType;
|
import org.slf4j.ILoggerFactory;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
/**
|
* 登录回调工具类。
|
* @author 时克英
|
* @date 2023-01-26
|
*/
|
public class LoginCallbackUtils {
|
|
protected static final Logger logger = LoggerFactory.getLogger(LoginCallbackUtils.class);
|
|
// public static final PlatformLoginCallback getLoginCallbackBean(UserType userType){
|
// if(userType == UserType.UserEquipment){
|
// throw new UnsupportedOperationException("暂不支持设备连接登录回调");
|
// } else if(userType == UserType.UserApp){
|
// return getLoginCallbackBean(LoginType.MOBILE);
|
// } else {
|
// return getLoginCallbackBean(LoginType.PC);
|
// }
|
// }
|
|
/**
|
* 根据登录类型,查找登录回调定义实现。
|
* @param loginType 登录类型,参考:{@linkplain LoginType}
|
* @param encryptPassword 如果密码方式,密码是否加密
|
* @return
|
*/
|
public static final PlatformLoginCallback getLoginCallbackBean(LoginType loginType, boolean encryptPassword, CaptchaType captchaType){
|
if(loginType == LoginType.UserPassword){
|
if(encryptPassword){
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(EncryptPasswordLoginCallback.class);
|
} else {
|
logger.error("'SimplePasswordLoginCallback'还未配置,明文密码登录已不再支持!仅用于测试。");
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(SimplePasswordLoginCallback.class);
|
}
|
} else if(loginType == LoginType.SmsCode){
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(SmsCodeLoginCallback.class);
|
} else if(loginType == LoginType.MobilePassword){
|
if(captchaType == CaptchaType.None){
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(NoneCaptchaLoginCallback.class);
|
} else {
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(MobilePassCaptchaLoginCallback.class);
|
}
|
|
// return PlatformCallbackPostProcessor.getCallbackMultipleBean(NoneCaptchaLoginCallback.class);
|
} else if(loginType == LoginType.ThirdParty){
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(ThirdPartyLoginCallback.class);
|
} else if(loginType == LoginType.Wechat){
|
return PlatformCallbackPostProcessor.getCallbackMultipleBean(WechatLoginCallback.class);
|
} else {
|
throw new UnsupportedOperationException("暂不支持登录类型:" + loginType);
|
}
|
}
|
}
|