新增参数 oauth2.successUrl
This commit is contained in:
@@ -4,29 +4,6 @@
|
|||||||
*/
|
*/
|
||||||
package com.jeesite.common.shiro.filter;
|
package com.jeesite.common.shiro.filter;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import javax.servlet.ServletRequest;
|
|
||||||
import javax.servlet.ServletResponse;
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
|
|
||||||
import org.apache.shiro.authc.AuthenticationException;
|
|
||||||
import org.apache.shiro.authc.AuthenticationToken;
|
|
||||||
import org.apache.shiro.authc.IncorrectCredentialsException;
|
|
||||||
import org.apache.shiro.authc.UnknownAccountException;
|
|
||||||
import org.apache.shiro.authz.UnauthorizedException;
|
|
||||||
import org.apache.shiro.session.Session;
|
|
||||||
import org.apache.shiro.subject.Subject;
|
|
||||||
import org.apache.shiro.web.servlet.Cookie;
|
|
||||||
import org.apache.shiro.web.servlet.SimpleCookie;
|
|
||||||
import org.apache.shiro.web.servlet.Cookie.SameSiteOptions;
|
|
||||||
import org.apache.shiro.web.util.WebUtils;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import com.jeesite.common.codec.DesUtils;
|
import com.jeesite.common.codec.DesUtils;
|
||||||
import com.jeesite.common.codec.EncodeUtils;
|
import com.jeesite.common.codec.EncodeUtils;
|
||||||
import com.jeesite.common.collect.MapUtils;
|
import com.jeesite.common.collect.MapUtils;
|
||||||
@@ -43,6 +20,27 @@ import com.jeesite.modules.sys.entity.User;
|
|||||||
import com.jeesite.modules.sys.utils.LogUtils;
|
import com.jeesite.modules.sys.utils.LogUtils;
|
||||||
import com.jeesite.modules.sys.utils.UserUtils;
|
import com.jeesite.modules.sys.utils.UserUtils;
|
||||||
import com.jeesite.modules.sys.utils.ValidCodeUtils;
|
import com.jeesite.modules.sys.utils.ValidCodeUtils;
|
||||||
|
import org.apache.shiro.authc.AuthenticationException;
|
||||||
|
import org.apache.shiro.authc.AuthenticationToken;
|
||||||
|
import org.apache.shiro.authc.IncorrectCredentialsException;
|
||||||
|
import org.apache.shiro.authc.UnknownAccountException;
|
||||||
|
import org.apache.shiro.authz.UnauthorizedException;
|
||||||
|
import org.apache.shiro.session.Session;
|
||||||
|
import org.apache.shiro.subject.Subject;
|
||||||
|
import org.apache.shiro.web.servlet.Cookie;
|
||||||
|
import org.apache.shiro.web.servlet.Cookie.SameSiteOptions;
|
||||||
|
import org.apache.shiro.web.servlet.SimpleCookie;
|
||||||
|
import org.apache.shiro.web.util.WebUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import javax.servlet.ServletRequest;
|
||||||
|
import javax.servlet.ServletResponse;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 表单验证(包含验证码)过滤类
|
* 表单验证(包含验证码)过滤类
|
||||||
@@ -59,7 +57,7 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
|
|||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(FormFilter.class);
|
private static final Logger logger = LoggerFactory.getLogger(FormFilter.class);
|
||||||
private static FormFilter instance;
|
private static FormFilter instance;
|
||||||
|
|
||||||
private BaseAuthorizingRealm authorizingRealm;
|
private BaseAuthorizingRealm authorizingRealm;
|
||||||
private Cookie rememberUserCodeCookie; // 记住用户名Cookie
|
private Cookie rememberUserCodeCookie; // 记住用户名Cookie
|
||||||
|
|
||||||
@@ -295,15 +293,16 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
|
|||||||
* 登录成功调用事件
|
* 登录成功调用事件
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception {
|
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest servletRequest, ServletResponse response) throws Exception {
|
||||||
|
HttpServletRequest request = (HttpServletRequest)servletRequest;
|
||||||
// 登录成功后初始化授权信息并处理登录后的操作
|
// 登录成功后初始化授权信息并处理登录后的操作
|
||||||
authorizingRealm.onLoginSuccess(UserUtils.getLoginInfo(), (HttpServletRequest)request);
|
authorizingRealm.onLoginSuccess(UserUtils.getLoginInfo(), request);
|
||||||
// AJAX不支持Redirect改用Forward
|
// 跳转到登录成功页面
|
||||||
try {
|
String successUrl = getSuccessUrl(); // shiro.successUrl in application.yml
|
||||||
request.getRequestDispatcher(getSuccessUrl()).forward(request, response);
|
if (StringUtils.contains((request).getRequestURI(), "/oauth2/")) {
|
||||||
} catch (Exception e) {
|
successUrl = Global.getConfig("oauth2.successUrl", successUrl);
|
||||||
e.printStackTrace();
|
|
||||||
}
|
}
|
||||||
|
ServletUtils.redirectUrl(request, (HttpServletResponse)response, successUrl);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -330,14 +329,9 @@ public class FormFilter extends org.apache.shiro.web.filter.authc.FormAuthentica
|
|||||||
}
|
}
|
||||||
request.setAttribute(EXCEPTION_ATTRIBUTE_NAME, e);
|
request.setAttribute(EXCEPTION_ATTRIBUTE_NAME, e);
|
||||||
request.setAttribute(MESSAGE_PARAM, message);
|
request.setAttribute(MESSAGE_PARAM, message);
|
||||||
|
// 跳转到登录失败页面
|
||||||
// AJAX不支持Redirect改用Forward
|
String loginFailureUrl = Global.getProperty("adminPath") + "/loginFailure";
|
||||||
try {
|
ServletUtils.redirectUrl((HttpServletRequest)request, (HttpServletResponse)response, loginFailureUrl);
|
||||||
String loginFailureUrl = Global.getProperty("adminPath")+"/loginFailure";
|
|
||||||
request.getRequestDispatcher(loginFailureUrl).forward(request, response);
|
|
||||||
} catch (Exception ex) {
|
|
||||||
ex.printStackTrace();
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user