@ -21,6 +21,7 @@ import com.ruoyi.common.utils.ServletUtils;
@@ -21,6 +21,7 @@ import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.ip.IpUtils ;
import com.ruoyi.framework.manager.AsyncManager ;
import com.ruoyi.framework.manager.factory.AsyncFactory ;
import com.ruoyi.system.service.ISysConfigService ;
import com.ruoyi.system.service.ISysUserService ;
/ * *
@ -43,6 +44,9 @@ public class SysLoginService
@@ -43,6 +44,9 @@ public class SysLoginService
@Autowired
private ISysUserService userService ;
@Autowired
private ISysConfigService configService ;
/ * *
* 登录验证
*
@ -54,18 +58,11 @@ public class SysLoginService
@@ -54,18 +58,11 @@ public class SysLoginService
* /
public String login ( String username , String password , String code , String uuid )
{
String verifyKey = Constants . CAPTCHA_CODE_KEY + uuid ;
String captcha = redisCache . getCacheObject ( verifyKey ) ;
redisCache . deleteObject ( verifyKey ) ;
if ( captcha = = null )
{
AsyncManager . me ( ) . execute ( AsyncFactory . recordLogininfor ( username , Constants . LOGIN_FAIL , MessageUtils . message ( "user.jcaptcha.expire" ) ) ) ;
throw new CaptchaExpireException ( ) ;
}
if ( ! code . equalsIgnoreCase ( captcha ) )
boolean captchaOnOff = configService . selectCaptchaOnOff ( ) ;
// 验证码开关
if ( captchaOnOff )
{
AsyncManager . me ( ) . execute ( AsyncFactory . recordLogininfor ( username , Constants . LOGIN_FAIL , MessageUtils . message ( "user.jcaptcha.error" ) ) ) ;
throw new CaptchaException ( ) ;
validateCapcha ( username , code , uuid ) ;
}
// 用户验证
Authentication authentication = null ;
@ -95,6 +92,31 @@ public class SysLoginService
@@ -95,6 +92,31 @@ public class SysLoginService
return tokenService . createToken ( loginUser ) ;
}
/ * *
* 校验验证码
*
* @param username 用户名
* @param code 验证码
* @param uuid 唯一标识
* @return 结果
* /
public void validateCapcha ( String username , String code , String uuid )
{
String verifyKey = Constants . CAPTCHA_CODE_KEY + uuid ;
String captcha = redisCache . getCacheObject ( verifyKey ) ;
redisCache . deleteObject ( verifyKey ) ;
if ( captcha = = null )
{
AsyncManager . me ( ) . execute ( AsyncFactory . recordLogininfor ( username , Constants . LOGIN_FAIL , MessageUtils . message ( "user.jcaptcha.expire" ) ) ) ;
throw new CaptchaExpireException ( ) ;
}
if ( ! code . equalsIgnoreCase ( captcha ) )
{
AsyncManager . me ( ) . execute ( AsyncFactory . recordLogininfor ( username , Constants . LOGIN_FAIL , MessageUtils . message ( "user.jcaptcha.error" ) ) ) ;
throw new CaptchaException ( ) ;
}
}
/ * *
* 记录登录信息
* /