| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.time.LocalDateTime; |
| | | |
| | | @Component |
| | |
| | | private TokenService tokenService; |
| | | @Autowired |
| | | private ExStudentService studentService; |
| | | @Autowired |
| | | private HttpServletRequest request; |
| | | |
| | | |
| | | |
| | |
| | | authentication = authenticationManager.authenticate(authenticationToken); |
| | | LoginUserDetails loginUserDetails= (LoginUserDetails) authentication.getPrincipal(); |
| | | passwordService.validate(loginUserDetails.getUser(),password); |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功")); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功")); |
| | | recordLoginInfo(loginUserDetails.getUser().getId(),LoginUserTagEnum.ADMIN_USER); |
| | | return createLoginUser(loginUserDetails,LoginUserTagEnum.ADMIN_USER); |
| | | }catch (Exception e){ |
| | | if (e instanceof BadCredentialsException) |
| | | { |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配")); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配")); |
| | | throw new ApiException("用户密码不匹配"); |
| | | } |
| | | else |
| | | { |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage())); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage())); |
| | | throw new ApiException(e.getMessage()); |
| | | } |
| | | }finally { |
| | |
| | | authentication = authenticationManager.authenticate(authenticationToken); |
| | | LoginUserDetails loginUserDetails= (LoginUserDetails) authentication.getPrincipal(); |
| | | passwordService.validate(loginUserDetails.getUser(),password); |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功")); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_SUCCESS, "登录成功")); |
| | | recordLoginInfo(loginUserDetails.getUser().getId(),LoginUserTagEnum.STUDENT_USER); |
| | | return createLoginUser(loginUserDetails,LoginUserTagEnum.STUDENT_USER); |
| | | }catch (Exception e){ |
| | | if (e instanceof BadCredentialsException) |
| | | { |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配")); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, "用户密码不匹配")); |
| | | throw new ApiException("用户密码不匹配"); |
| | | } |
| | | else |
| | | { |
| | | AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage())); |
| | | // AsyncManager.me().execute(AsyncFactory.recordLoginInfo(username, Constant.LOGIN_FAIL, e.getMessage())); |
| | | throw new ApiException(e.getMessage()); |
| | | } |
| | | }finally { |
| | |
| | | private LoginUser createLoginUser(LoginUserDetails loginUserDetails,LoginUserTagEnum loginUserTagEnum){ |
| | | LoginUser loginUser= new LoginUser() |
| | | .setId(loginUserDetails.getUser().getId()) |
| | | .setUsername(loginUserDetails.getUsername()); |
| | | .setUsername(loginUserDetails.getUsername()) |
| | | .setCompanyId(loginUserDetails.getUser().getCompanyId()); |
| | | loginUser.setToken(tokenService.createToken(loginUserDetails.getUsername()+loginUserTagEnum.getCode())); |
| | | tokenService.cacheUserToken(loginUserDetails.getUsername(),loginUser.getToken()); |
| | | return loginUser; |
| | |
| | | } |
| | | |
| | | |
| | | public void logout(){ |
| | | tokenService.delTokenCache(request); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |