| | |
| | | import com.ard.framework.manager.AsyncManager; |
| | | import com.ard.framework.manager.factory.AsyncFactory; |
| | | import com.ard.framework.security.context.AuthenticationContextHolder; |
| | | import com.ard.system.system.service.ISysConfigService; |
| | | import com.ard.system.system.service.ISysUserService; |
| | | import com.ard.system.service.ISysConfigService; |
| | | import com.ard.system.service.ISysUserService; |
| | | |
| | | /** |
| | | * 登录校验方法 |
| | | * |
| | | * @author ruoyi |
| | | * @author ard |
| | | */ |
| | | @Component |
| | | public class SysLoginService |
| | |
| | | AuthenticationContextHolder.setContext(authenticationToken); |
| | | // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername |
| | | authentication = authenticationManager.authenticate(authenticationToken); |
| | | |
| | | // 获取用户ID |
| | | LoginUser loginUser = (LoginUser) userDetailsService.loadUserByUsername(username); |
| | | Long userId = loginUser.getUser().getUserId(); |
| | | // 登录成功逻辑 |
| | | if (authentication.isAuthenticated()) { |
| | | // 检查是否已登录 |
| | | successHandler.onAuthenticationSuccess(userId); |
| | | successHandler.onAuthenticationSuccess(authentication); |
| | | } |
| | | } |
| | | catch (Exception e) |
| | |
| | | if (!soloLogin) |
| | | { |
| | | // 如果用户不允许多终端同时登录,清除缓存信息 |
| | | String userIdKey = Constants.LOGIN_USERID_KEY + loginUser.getUser().getUserId(); |
| | | String userIdKey = CacheConstants.LOGIN_USERID_KEY + loginUser.getUser().getUserId(); |
| | | String userKey = redisCache.getCacheObject(userIdKey); |
| | | if (StringUtils.isNotEmpty(userKey)) |
| | | { |