| | |
| | | package com.fzzy.sys.controller; |
| | | |
| | | import com.fzzy.igds.utils.Base64Util; |
| | | import com.fzzy.sys.LoginCheckManager; |
| | | import com.fzzy.sys.service.LoginService; |
| | | import com.ruoyi.common.config.FrameworkConfig; |
| | | import com.ruoyi.common.core.controller.BaseController; |
| | |
| | | import com.ruoyi.framework.shiro.token.PhoneToken; |
| | | import com.ruoyi.framework.web.service.ConfigService; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.apache.shiro.authc.AuthenticationException; |
| | | import org.apache.shiro.authc.UsernamePasswordToken; |
| | |
| | | * |
| | | * @author ruoyi |
| | | */ |
| | | @Slf4j |
| | | @Controller |
| | | public class SysLoginController extends BaseController { |
| | | /** |
| | |
| | | @Resource |
| | | private RedisCache redisCache; |
| | | |
| | | @Resource |
| | | private LoginCheckManager loginCheckManager; |
| | | |
| | | @GetMapping("/login") |
| | | public String login(HttpServletRequest request, HttpServletResponse response, ModelMap mmap) { |
| | | // 如果是Ajax请求,返回Json字符串。 |
| | |
| | | return "login"; |
| | | } |
| | | |
| | | /** |
| | | * 登录方法 ---系统自带 |
| | | * |
| | | * @param username 用户名 |
| | | * @param password 密码 |
| | | * @param rememberMe 记住我 |
| | | * @return 结果 |
| | | |
| | | @PostMapping("/login") |
| | | @ResponseBody |
| | | public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe) { |
| | | UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe); |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | |
| | | try { |
| | | subject.login(token); |
| | | return success(); |
| | | } catch (AuthenticationException e) { |
| | | log.error("登录异常", e); |
| | | String msg = "用户名或者密码错误,请核对"; |
| | | return error(msg); |
| | | } |
| | | } |
| | | */ |
| | | /** |
| | | * 登录方法 ---自定义调整 |
| | | * |
| | | * @param username 用户名 |
| | | * @param password 密码 |
| | | * @param rememberMe 记住我 |
| | | * @return 结果 |
| | | */ |
| | | @PostMapping("/login") |
| | | @ResponseBody |
| | | public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe) { |
| | | if (StringUtils.isNotBlank(password)){ |
| | | password=Base64Util.decodeBase64Password(password); |
| | | } |
| | | |
| | | UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe); |
| | | Subject subject = SecurityUtils.getSubject(); |
| | | try { |
| | | subject.login(token); |
| | | //清除错误信息 |
| | | loginCheckManager.clearCheckError(username); |
| | | return success(); |
| | | } catch (AuthenticationException e) { |
| | | String msg = "账号、密码或验证码错误,请重新输入"; |
| | | // if (StringUtils.isNotEmpty(e.getMessage())) { |
| | | // msg = e.getMessage(); |
| | | // } |
| | | |
| | | //根据自定义换缓存判断信息 |
| | | String errorMsg = loginCheckManager.getCheckError(username); |
| | | if(StringUtils.isNotBlank(errorMsg)){ |
| | | //loginCheckManager.clearCheckError(username); |
| | | return error(errorMsg); |
| | | } |
| | | |
| | | log.error("用户[" + username + "]登录异常,{}", e.getMessage()); |
| | | String msg = "登录异常,信息:"+e.getMessage(); |
| | | return error(msg); |
| | | } |
| | | } |