From 85790225afcd185dce28a482dafb1e42b85e59d0 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Wed, 27 Feb 2019 21:37:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=9C=B0=E5=9D=80=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=BC=A0=E9=80=92=5F=5Furl=E5=8F=82=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E7=99=BB=E5=BD=95=E5=90=8E=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E7=9A=84=E9=A1=B5=E9=9D=A2=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shiro/filter/CasAuthenticationFilter.java | 16 ++++------------ .../shiro/filter/FormAuthenticationFilter.java | 15 ++------------- .../jeesite/modules/sys/web/LoginController.java | 16 ++++++++++++---- .../themes/default/modules/sys/sysLogin.html | 1 + 4 files changed, 19 insertions(+), 29 deletions(-) diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/CasAuthenticationFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/CasAuthenticationFilter.java index 34df47fc..dcb8126e 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/CasAuthenticationFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/CasAuthenticationFilter.java @@ -38,12 +38,8 @@ public class CasAuthenticationFilter extends org.apache.shiro.cas.CasFilter { // 登录成功后初始化授权信息并处理登录后的操作 authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest)request); - String url = request.getParameter("__url"); - if (StringUtils.isNotBlank(url)) { - WebUtils.issueRedirect(request, response, url, null, true); - } else { - WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true); - } + // AJAX不支持Redirect改用Forward + request.getRequestDispatcher(getSuccessUrl()).forward(request, response); return false; } @@ -55,12 +51,8 @@ public class CasAuthenticationFilter extends org.apache.shiro.cas.CasFilter { Subject subject = getSubject(request, response); if (subject.isAuthenticated() || subject.isRemembered()) { try { - String url = request.getParameter("__url"); - if (StringUtils.isNotBlank(url)) { - WebUtils.issueRedirect(request, response, url, null, true); - } else { - WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true); - } + // AJAX不支持Redirect改用Forward + request.getRequestDispatcher(getSuccessUrl()).forward(request, response); } catch (Exception e) { e.printStackTrace(); } diff --git a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java index bc69ba63..ec4777c6 100644 --- a/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java +++ b/modules/core/src/main/java/com/jeesite/common/shiro/filter/FormAuthenticationFilter.java @@ -235,19 +235,8 @@ public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc. // 登录成功后初始化授权信息并处理登录后的操作 authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest) request); - // 登录操作如果是Ajax操作,直接返回登录信息字符串。 - if (ServletUtils.isAjaxRequest((HttpServletRequest) request)) { - request.getRequestDispatcher(getSuccessUrl()).forward(request, response); // AJAX不支持Redirect改用Forward - } - // 登录成功直接返回到首页 - else { - String url = request.getParameter("__url"); - if (StringUtils.isNotBlank(url)) { - WebUtils.issueRedirect(request, response, url, null, true); - } else { - WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true); - } - } + // AJAX不支持Redirect改用Forward + request.getRequestDispatcher(getSuccessUrl()).forward(request, response); return false; } diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java index 6e055a21..de522cc7 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/web/LoginController.java @@ -252,10 +252,10 @@ public class LoginController extends BaseController{ } } - // 获取登录成功页面 - String successUrl = Global.getProperty("shiro.successUrl"); - if (!StringUtils.contains(successUrl, "://")){ - successUrl = request.getContextPath() + successUrl; + // 获取登录成功后跳转的页面 + String successUrl = request.getParameter("__url"); + if (StringUtils.isBlank(successUrl)){ + successUrl = Global.getProperty("shiro.successUrl"); } // 登录操作如果是Ajax操作,直接返回登录信息字符串。 @@ -268,6 +268,9 @@ public class LoginController extends BaseController{ model.addAttribute("message", text("sys.login.getInfo")); } model.addAttribute("sessionid", (String)session.getId()); + if (!StringUtils.contains(successUrl, "://")){ + successUrl = request.getContextPath() + successUrl; + } model.addAttribute("__url", successUrl); // 告诉浏览器登录后跳转的页面 return ServletUtils.renderObject(response, model); } @@ -301,6 +304,11 @@ public class LoginController extends BaseController{ return null; } + // 非无类型用户,自动根据用户类型设置默认菜单的归属系统(个性化示例) + //if (!User.USER_TYPE_NONE.equals(user.getUserType())){ + // session.setAttribute("sysCode", user.getUserType()); + //} + // 返回指定用户类型的首页视图 String view = UserUtils.getUserTypeValue(user.getUserType(), "indexView"); if(StringUtils.isNotBlank(view)){ diff --git a/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html b/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html index 2c0657e4..f0e66fe0 100644 --- a/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html +++ b/modules/core/src/main/resources/views/themes/default/modules/sys/sysLogin.html @@ -47,6 +47,7 @@
+