登录地址支持传递__url参数,指定登录后跳转的页面。
This commit is contained in:
@@ -38,12 +38,8 @@ public class CasAuthenticationFilter extends org.apache.shiro.cas.CasFilter {
|
|||||||
// 登录成功后初始化授权信息并处理登录后的操作
|
// 登录成功后初始化授权信息并处理登录后的操作
|
||||||
authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest)request);
|
authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest)request);
|
||||||
|
|
||||||
String url = request.getParameter("__url");
|
// AJAX不支持Redirect改用Forward
|
||||||
if (StringUtils.isNotBlank(url)) {
|
request.getRequestDispatcher(getSuccessUrl()).forward(request, response);
|
||||||
WebUtils.issueRedirect(request, response, url, null, true);
|
|
||||||
} else {
|
|
||||||
WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true);
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,12 +51,8 @@ public class CasAuthenticationFilter extends org.apache.shiro.cas.CasFilter {
|
|||||||
Subject subject = getSubject(request, response);
|
Subject subject = getSubject(request, response);
|
||||||
if (subject.isAuthenticated() || subject.isRemembered()) {
|
if (subject.isAuthenticated() || subject.isRemembered()) {
|
||||||
try {
|
try {
|
||||||
String url = request.getParameter("__url");
|
// AJAX不支持Redirect改用Forward
|
||||||
if (StringUtils.isNotBlank(url)) {
|
request.getRequestDispatcher(getSuccessUrl()).forward(request, response);
|
||||||
WebUtils.issueRedirect(request, response, url, null, true);
|
|
||||||
} else {
|
|
||||||
WebUtils.issueRedirect(request, response, getSuccessUrl(), null, true);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -235,19 +235,8 @@ public class FormAuthenticationFilter extends org.apache.shiro.web.filter.authc.
|
|||||||
// 登录成功后初始化授权信息并处理登录后的操作
|
// 登录成功后初始化授权信息并处理登录后的操作
|
||||||
authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest) request);
|
authorizingRealm.onLoginSuccess((LoginInfo)subject.getPrincipal(), (HttpServletRequest) request);
|
||||||
|
|
||||||
// 登录操作如果是Ajax操作,直接返回登录信息字符串。
|
// AJAX不支持Redirect改用Forward
|
||||||
if (ServletUtils.isAjaxRequest((HttpServletRequest) request)) {
|
request.getRequestDispatcher(getSuccessUrl()).forward(request, response);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -252,10 +252,10 @@ public class LoginController extends BaseController{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取登录成功页面
|
// 获取登录成功后跳转的页面
|
||||||
String successUrl = Global.getProperty("shiro.successUrl");
|
String successUrl = request.getParameter("__url");
|
||||||
if (!StringUtils.contains(successUrl, "://")){
|
if (StringUtils.isBlank(successUrl)){
|
||||||
successUrl = request.getContextPath() + successUrl;
|
successUrl = Global.getProperty("shiro.successUrl");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 登录操作如果是Ajax操作,直接返回登录信息字符串。
|
// 登录操作如果是Ajax操作,直接返回登录信息字符串。
|
||||||
@@ -268,6 +268,9 @@ public class LoginController extends BaseController{
|
|||||||
model.addAttribute("message", text("sys.login.getInfo"));
|
model.addAttribute("message", text("sys.login.getInfo"));
|
||||||
}
|
}
|
||||||
model.addAttribute("sessionid", (String)session.getId());
|
model.addAttribute("sessionid", (String)session.getId());
|
||||||
|
if (!StringUtils.contains(successUrl, "://")){
|
||||||
|
successUrl = request.getContextPath() + successUrl;
|
||||||
|
}
|
||||||
model.addAttribute("__url", successUrl); // 告诉浏览器登录后跳转的页面
|
model.addAttribute("__url", successUrl); // 告诉浏览器登录后跳转的页面
|
||||||
return ServletUtils.renderObject(response, model);
|
return ServletUtils.renderObject(response, model);
|
||||||
}
|
}
|
||||||
@@ -301,6 +304,11 @@ public class LoginController extends BaseController{
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 非无类型用户,自动根据用户类型设置默认菜单的归属系统(个性化示例)
|
||||||
|
//if (!User.USER_TYPE_NONE.equals(user.getUserType())){
|
||||||
|
// session.setAttribute("sysCode", user.getUserType());
|
||||||
|
//}
|
||||||
|
|
||||||
// 返回指定用户类型的首页视图
|
// 返回指定用户类型的首页视图
|
||||||
String view = UserUtils.getUserTypeValue(user.getUserType(), "indexView");
|
String view = UserUtils.getUserTypeValue(user.getUserType(), "indexView");
|
||||||
if(StringUtils.isNotBlank(view)){
|
if(StringUtils.isNotBlank(view)){
|
||||||
|
|||||||
@@ -47,6 +47,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
<input type="hidden" name="__url" value="${parameter.__url!}">
|
||||||
<button type="submit" class="btn btn-primary btn-block btn-flat"
|
<button type="submit" class="btn btn-primary btn-block btn-flat"
|
||||||
id="btnSubmit" data-loading="${text('登录验证成功,正在进入...')}"
|
id="btnSubmit" data-loading="${text('登录验证成功,正在进入...')}"
|
||||||
data-login-valid="${text('正在验证登录,请稍后...')}">${text('立即登录')}</button>
|
data-login-valid="${text('正在验证登录,请稍后...')}">${text('立即登录')}</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user