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 @@
+