From 182b43ff052176b182a32eff9c928717f8f4c61a Mon Sep 17 00:00:00 2001 From: aijinhui <aijinhui> Date: 星期二, 10 十月 2023 14:22:59 +0800 Subject: [PATCH] 设备健康列表 --- ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 90 ++++++++++++++++++++++++++------------------- 1 files changed, 52 insertions(+), 38 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 3ea775d..f3fa8aa 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -1,6 +1,8 @@ package com.ruoyi.framework.web.service; import javax.annotation.Resource; + +import com.ruoyi.rongcloud.service.RongCloudService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.BadCredentialsException; @@ -29,12 +31,11 @@ /** * 鐧诲綍鏍¢獙鏂规硶 - * + * * @author ruoyi */ @Component -public class SysLoginService -{ +public class SysLoginService { @Autowired private TokenService tokenService; @@ -43,83 +44,77 @@ @Autowired private RedisCache redisCache; - + @Autowired private ISysUserService userService; @Autowired private ISysConfigService configService; + @Resource + RongCloudService rongCloudService; + /** * 鐧诲綍楠岃瘉 - * + * * @param username 鐢ㄦ埛鍚� * @param password 瀵嗙爜 - * @param code 楠岃瘉鐮� - * @param uuid 鍞竴鏍囪瘑 + * @param code 楠岃瘉鐮� + * @param uuid 鍞竴鏍囪瘑 * @return 缁撴灉 */ - public String login(String username, String password, String code, String uuid) - { + public String login(String username, String password, String code, String uuid) { + + boolean captchaEnabled = configService.selectCaptchaEnabled(); // 楠岃瘉鐮佸紑鍏� - if (captchaEnabled) - { + if (captchaEnabled) { validateCaptcha(username, code, uuid); } // 鐢ㄦ埛楠岃瘉 Authentication authentication = null; - try - { + try { UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); AuthenticationContextHolder.setContext(authenticationToken); // 璇ユ柟娉曚細鍘昏皟鐢║serDetailsServiceImpl.loadUserByUsername authentication = authenticationManager.authenticate(authenticationToken); - } - catch (Exception e) - { - if (e instanceof BadCredentialsException) - { + } catch (Exception e) { + if (e instanceof BadCredentialsException) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); throw new UserPasswordNotMatchException(); - } - else - { + } else { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); throw new ServiceException(e.getMessage()); } - } - finally - { + } finally { AuthenticationContextHolder.clearContext(); } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); recordLoginInfo(loginUser.getUserId()); - // 鐢熸垚token - return tokenService.createToken(loginUser); - } + getRongCloudToken(loginUser); + // 鐢熸垚token + String token = tokenService.createToken(loginUser); + return token; + } /** * 鏍¢獙楠岃瘉鐮� - * + * * @param username 鐢ㄦ埛鍚� - * @param code 楠岃瘉鐮� - * @param uuid 鍞竴鏍囪瘑 + * @param code 楠岃瘉鐮� + * @param uuid 鍞竴鏍囪瘑 * @return 缁撴灉 */ - public void validateCaptcha(String username, String code, String uuid) - { + public void validateCaptcha(String username, String code, String uuid) { String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); redisCache.deleteObject(verifyKey); - if (captcha == null) - { + if (captcha == null) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); throw new CaptchaExpireException(); } - if (!code.equalsIgnoreCase(captcha)) - { + if (!code.equalsIgnoreCase(captcha)) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); throw new CaptchaException(); } @@ -130,12 +125,31 @@ * * @param userId 鐢ㄦ埛ID */ - public void recordLoginInfo(String userId) - { + public void recordLoginInfo(String userId) { SysUser sysUser = new SysUser(); sysUser.setUserId(userId); sysUser.setLoginIp(IpUtils.getIpAddr(ServletUtils.getRequest())); sysUser.setLoginDate(DateUtils.getNowDate()); userService.updateUserProfile(sysUser); } + /** + * 鑾峰彇骞惰褰曡瀺浜憈oken + * + * @param loginUser 鐧诲綍鐢ㄦ埛 + */ + public String getRongCloudToken(LoginUser loginUser) { + try { + String userId = loginUser.getUserId(); + String nickName = loginUser.getUser().getNickName(); + String token = rongCloudService.getToken(userId, nickName); + loginUser.setRongCloudToken(token); + SysUser sysUser = new SysUser(); + sysUser.setUserId(userId); + sysUser.setRongCloudToken(token); + userService.updateUserProfile(sysUser); + return token; + } catch (Exception ex) { + throw ex; + } + } } -- Gitblit v1.9.3