From aa43aac81d656661183652388a0d7b2147c6b53e Mon Sep 17 00:00:00 2001 From: wangjianlong Date: Fri, 26 Apr 2019 18:21:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E5=A4=B1=E8=B4=A5=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=94=99=E8=AF=AF=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/system/SysLoginController.java | 130 ++++++------ .../web/exception/GlobalExceptionHandler.java | 188 +++++++++--------- 2 files changed, 159 insertions(+), 159 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 11eb52c4..1652f74e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -1,65 +1,65 @@ -package com.ruoyi.web.controller.system; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import org.apache.shiro.SecurityUtils; -import org.apache.shiro.authc.AuthenticationException; -import org.apache.shiro.authc.UsernamePasswordToken; -import org.apache.shiro.subject.Subject; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import com.ruoyi.common.core.controller.BaseController; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.StringUtils; - -/** - * 登录验证 - * - * @author ruoyi - */ -@Controller -public class SysLoginController extends BaseController -{ - @GetMapping("/login") - public String login(HttpServletRequest request, HttpServletResponse response) - { - // 如果是Ajax请求,返回Json字符串。 - if (ServletUtils.isAjaxRequest(request)) - { - return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}"); - } - - return "login"; - } - - @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) - { - String msg = "用户或密码错误"; - if (StringUtils.isNotEmpty(e.getMessage())) - { - msg = e.getMessage(); - } - return error(msg); - } - } - - @GetMapping("/unauth") - public String unauth() - { - return "/error/unauth"; - } -} +package com.ruoyi.web.controller.system; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.authc.AuthenticationException; +import org.apache.shiro.authc.UsernamePasswordToken; +import org.apache.shiro.subject.Subject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.StringUtils; + +/** + * 登录验证 + * + * @author ruoyi + */ +@Controller +public class SysLoginController extends BaseController +{ + @GetMapping("/login") + public String login(HttpServletRequest request, HttpServletResponse response) + { + // 如果是Ajax请求,返回Json字符串。 + if (ServletUtils.isAjaxRequest(request)) + { + return ServletUtils.renderString(response, "{\"code\":\"1\",\"msg\":\"未登录或登录超时。请重新登录\"}"); + } + + return "login"; + } + + @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) + { + String msg = "用户或密码错误"; + if (StringUtils.isNotEmpty(e.getMessage())) + { + msg = e.getMessage(); + } + return error(msg); + } + } + + @GetMapping("/unauth") + public String unauth() + { + return "error/unauth"; + } +} diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index 179f33f4..1f01e56d 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -1,94 +1,94 @@ -package com.ruoyi.framework.web.exception; - -import javax.servlet.http.HttpServletRequest; -import org.apache.shiro.authz.AuthorizationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.web.HttpRequestMethodNotSupportedException; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import org.springframework.web.servlet.ModelAndView; -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.common.exception.BusinessException; -import com.ruoyi.common.exception.DemoModeException; -import com.ruoyi.common.utils.ServletUtils; -import com.ruoyi.common.utils.security.PermissionUtils; - -/** - * 全局异常处理器 - * - * @author ruoyi - */ -@RestControllerAdvice -public class GlobalExceptionHandler -{ - private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); - - /** - * 权限校验失败 如果请求为ajax返回json,普通请求跳转页面 - */ - @ExceptionHandler(AuthorizationException.class) - public Object handleAuthorizationException(HttpServletRequest request, AuthorizationException e) - { - log.error(e.getMessage(), e); - if (ServletUtils.isAjaxRequest(request)) - { - return AjaxResult.error(PermissionUtils.getMsg(e.getMessage())); - } - else - { - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("/error/unauth"); - return modelAndView; - } - } - - /** - * 请求方式不支持 - */ - @ExceptionHandler({ HttpRequestMethodNotSupportedException.class }) - public AjaxResult handleException(HttpRequestMethodNotSupportedException e) - { - log.error(e.getMessage(), e); - return AjaxResult.error("不支持' " + e.getMethod() + "'请求"); - } - - /** - * 拦截未知的运行时异常 - */ - @ExceptionHandler(RuntimeException.class) - public AjaxResult notFount(RuntimeException e) - { - log.error("运行时异常:", e); - return AjaxResult.error("运行时异常:" + e.getMessage()); - } - - /** - * 系统异常 - */ - @ExceptionHandler(Exception.class) - public AjaxResult handleException(Exception e) - { - log.error(e.getMessage(), e); - return AjaxResult.error("服务器错误,请联系管理员"); - } - - /** - * 业务异常 - */ - @ExceptionHandler(BusinessException.class) - public AjaxResult businessException(BusinessException e) - { - log.error(e.getMessage(), e); - return AjaxResult.error(e.getMessage()); - } - - /** - * 演示模式异常 - */ - @ExceptionHandler(DemoModeException.class) - public AjaxResult demoModeException(DemoModeException e) - { - return AjaxResult.error("演示模式,不允许操作"); - } -} +package com.ruoyi.framework.web.exception; + +import javax.servlet.http.HttpServletRequest; +import org.apache.shiro.authz.AuthorizationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; +import org.springframework.web.servlet.ModelAndView; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.exception.BusinessException; +import com.ruoyi.common.exception.DemoModeException; +import com.ruoyi.common.utils.ServletUtils; +import com.ruoyi.common.utils.security.PermissionUtils; + +/** + * 全局异常处理器 + * + * @author ruoyi + */ +@RestControllerAdvice +public class GlobalExceptionHandler +{ + private static final Logger log = LoggerFactory.getLogger(GlobalExceptionHandler.class); + + /** + * 权限校验失败 如果请求为ajax返回json,普通请求跳转页面 + */ + @ExceptionHandler(AuthorizationException.class) + public Object handleAuthorizationException(HttpServletRequest request, AuthorizationException e) + { + log.error(e.getMessage(), e); + if (ServletUtils.isAjaxRequest(request)) + { + return AjaxResult.error(PermissionUtils.getMsg(e.getMessage())); + } + else + { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("error/unauth"); + return modelAndView; + } + } + + /** + * 请求方式不支持 + */ + @ExceptionHandler({ HttpRequestMethodNotSupportedException.class }) + public AjaxResult handleException(HttpRequestMethodNotSupportedException e) + { + log.error(e.getMessage(), e); + return AjaxResult.error("不支持' " + e.getMethod() + "'请求"); + } + + /** + * 拦截未知的运行时异常 + */ + @ExceptionHandler(RuntimeException.class) + public AjaxResult notFount(RuntimeException e) + { + log.error("运行时异常:", e); + return AjaxResult.error("运行时异常:" + e.getMessage()); + } + + /** + * 系统异常 + */ + @ExceptionHandler(Exception.class) + public AjaxResult handleException(Exception e) + { + log.error(e.getMessage(), e); + return AjaxResult.error("服务器错误,请联系管理员"); + } + + /** + * 业务异常 + */ + @ExceptionHandler(BusinessException.class) + public AjaxResult businessException(BusinessException e) + { + log.error(e.getMessage(), e); + return AjaxResult.error(e.getMessage()); + } + + /** + * 演示模式异常 + */ + @ExceptionHandler(DemoModeException.class) + public AjaxResult demoModeException(DemoModeException e) + { + return AjaxResult.error("演示模式,不允许操作"); + } +}