|
|
@@ -1,12 +1,11 @@
|
|
|
-package com.uas.platform.b2bManage.web.filter;
|
|
|
-
|
|
|
-import com.alibaba.fastjson.JSON;
|
|
|
-import com.uas.platform.b2bManage.core.support.SystemSession;
|
|
|
-import com.uas.platform.b2bManage.model.Constant;
|
|
|
-import com.uas.platform.b2bManage.model.User;
|
|
|
-import com.uas.platform.b2bManage.support.SecurityConstant;
|
|
|
-import com.uas.platform.core.util.AgentUtils;
|
|
|
-import com.uas.platform.core.util.encry.Md5Utils;
|
|
|
+package com.uas.platform.b2b.manage.web.filter;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.uas.platform.b2b.manage.core.support.SystemSession;
|
|
|
+import com.uas.platform.b2b.manage.model.Constant;
|
|
|
+import com.uas.platform.b2b.manage.model.User;
|
|
|
+import com.uas.platform.b2b.manage.support.SecurityConstant;
|
|
|
+import com.uas.platform.b2b.manage.utils.EncryptUtils;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
@@ -16,7 +15,6 @@ import javax.servlet.*;
|
|
|
import javax.servlet.http.Cookie;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
-import javax.servlet.http.HttpSession;
|
|
|
import java.io.IOException;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.util.ArrayList;
|
|
|
@@ -83,14 +81,11 @@ public class SSOInterceptor extends HandlerInterceptorAdapter implements Filter
|
|
|
* @param request HttpServletRequest
|
|
|
*/
|
|
|
private boolean checkCookie(boolean[] cookieExist, List<Cookie> cookieList, HttpServletRequest request) {
|
|
|
- String ipMd5 = Md5Utils.encode(AgentUtils.getIp(request), null);
|
|
|
cookieList.forEach(cookie -> {
|
|
|
switch (cookie.getName()) {
|
|
|
case (Constant.COOKIE_NAME):
|
|
|
- if (cookie.getValue().equals(ipMd5)) {
|
|
|
- cookieExist[0] = true;
|
|
|
- break;
|
|
|
- }
|
|
|
+ cookieExist[0] = true;
|
|
|
+ break;
|
|
|
default:
|
|
|
}
|
|
|
});
|
|
|
@@ -116,10 +111,21 @@ public class SSOInterceptor extends HandlerInterceptorAdapter implements Filter
|
|
|
* @param request HttpServletRequest
|
|
|
*/
|
|
|
private void logSession(HttpServletRequest request) throws UnsupportedEncodingException {
|
|
|
- Object user = request.getSession().getAttribute("user");
|
|
|
- if (user != null) {
|
|
|
- SystemSession.setUser((User) user);
|
|
|
- log.info("登录成功," + JSON.toJSONString(user));
|
|
|
+ Cookie[] cookies = request.getCookies();
|
|
|
+ if (null != cookies) {
|
|
|
+ Arrays.asList(cookies).forEach(cookie -> {
|
|
|
+ switch (cookie.getName()) {
|
|
|
+ case (Constant.COOKIE_NAME):
|
|
|
+ String result = EncryptUtils.aesDecode(cookie.getValue());
|
|
|
+ User user = JSONObject.parseObject(result, User.class);
|
|
|
+ if (user != null) {
|
|
|
+ SystemSession.setUser(user);
|
|
|
+ log.info("登录成功," + user.toString());
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -140,8 +146,7 @@ public class SSOInterceptor extends HandlerInterceptorAdapter implements Filter
|
|
|
* @throws IOException IO异常
|
|
|
*/
|
|
|
private boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
- HttpSession session = request.getSession();
|
|
|
- removeLocalSession(session);
|
|
|
+ removeLocalSession(request);
|
|
|
if (SecurityConstant.AUTHENTICATION_URL.equals(request.getRequestURI())) {
|
|
|
return true;
|
|
|
}
|
|
|
@@ -153,14 +158,20 @@ public class SSOInterceptor extends HandlerInterceptorAdapter implements Filter
|
|
|
/**
|
|
|
* 清除登录信息
|
|
|
*
|
|
|
- * @param session HttpSession
|
|
|
+ * @param request HttpServletRequest
|
|
|
*/
|
|
|
- private void removeLocalSession(HttpSession session) {
|
|
|
+ private void removeLocalSession(HttpServletRequest request) {
|
|
|
SystemSession.clear();
|
|
|
- session.invalidate();
|
|
|
+ Cookie[] cookies = request.getCookies();
|
|
|
+ if (null != cookies) {
|
|
|
+ Arrays.asList(cookies).forEach(cookie -> {
|
|
|
+ cookie.setMaxAge(0);
|
|
|
+ cookie.setPath("/");
|
|
|
+ });
|
|
|
+ }
|
|
|
User user = SystemSession.getUser();
|
|
|
if (null != user) {
|
|
|
- removeLocalSession(session);
|
|
|
+ removeLocalSession(request);
|
|
|
}
|
|
|
}
|
|
|
|