From be16d59fa5dafed5d4029539ea9618a94aa32e19 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 06 三月 2019 14:48:10 +0800
Subject: [PATCH] 推送修改
---
fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java | 109 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 74 insertions(+), 35 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
index eb5ef33..240026f 100644
--- a/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
+++ b/fanli/src/main/java/com/yeshi/fanli/aspect/LoginAspect.java
@@ -2,7 +2,9 @@
import java.io.IOException;
import java.lang.reflect.Method;
+import java.net.URLDecoder;
+import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -14,69 +16,106 @@
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
+import org.yeshi.utils.JsonUtil;
import com.yeshi.fanli.entity.common.AdminUser;
+import com.yeshi.fanli.log.LogHelper;
+import com.yeshi.fanli.service.AdminUserService;
+import com.yeshi.fanli.util.AESUtil;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.annotation.RequestNoLogin;
-import org.yeshi.utils.JsonUtil;
+
+import net.sf.json.JSONObject;
@Component
@Aspect
public class LoginAspect {
-
+
+ @Resource
+ private AdminUserService adminUserService;
+
@Around("execution(public * com.yeshi.fanli.controller.admin.*.*(..))")
public Object verifyLoginState(ProceedingJoinPoint joinPoint) throws IOException {
-
+
Signature signature = joinPoint.getSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method targetMethod = methodSignature.getMethod();
-
- ServletRequestAttributes servletContainer = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
-
- HttpServletRequest request = servletContainer.getRequest();
-
-
- AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
-
- if(admin==null){
- Method realMethod=null;
- try {
- realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(),
- targetMethod.getParameterTypes());
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- } catch (SecurityException e) {
- e.printStackTrace();
- }
- //鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ
- if (realMethod==null||!realMethod.isAnnotationPresent(RequestNoLogin.class))
- {
- HttpServletResponse response = servletContainer.getResponse();
+ ServletRequestAttributes servletContainer = (ServletRequestAttributes) RequestContextHolder
+ .getRequestAttributes();
+
+ HttpServletRequest request = servletContainer.getRequest();
+
+ AdminUser admin = (AdminUser) request.getSession().getAttribute(Constant.SESSION_ADMIN);
+
+ if (admin == null) {
+
+ String from = request.getParameter("from");
+ // 閭欢H5鏉ユ簮鐨勪笉鍒ゆ柇鏄惁鐧诲綍
+ if ("emailh5".equalsIgnoreCase(from)) {
String callback = request.getParameter("callback");
- if (StringUtil.isNullOrEmpty(callback)) {
- response.getWriter().print(JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍"));
+ String signAES = request.getParameter("sign");
+ if (signAES != null && signAES.contains("%"))
+ signAES = URLDecoder.decode(request.getParameter("sign"), "UTF-8");
+ String sign = AESUtil.decrypt(signAES, Constant.ADMINH5_AESKEY);
+ if (!StringUtil.isNullOrEmpty(sign)) {
+ LogHelper.error("H5瀹℃牳绛惧悕:" + sign);
+ JSONObject json = JSONObject.fromObject(sign);
+ long time = json.optLong("timeStamp");
+ long adminId = json.optLong("adminId");
+ AdminUser adminUser = adminUserService.selectByPrimaryKey(adminId);
+ // 1涓皬鏃堕摼鎺ュけ鏁�
+ if (System.currentTimeMillis() - time > 1000 * 60 * 60 || adminUser == null) {
+ servletContainer.getResponse().getWriter()
+ .print(callback + "(" + JsonUtil.loadFalseResult(2, "閾炬帴澶辨晥") + ")");
+ return null;
+ } else {
+ request.getSession().setAttribute(Constant.SESSION_ADMIN, adminUser);
+ request.getSession().setAttribute(Constant.SESSION_EXTRACT_VERIFY_RESULT, "1");
+ }
} else {
- response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍") + ")");
+ servletContainer.getResponse().getWriter()
+ .print(callback + "(" + JsonUtil.loadFalseResult(3, "閾炬帴澶辨晥") + ")");
+ return null;
}
-
- return null;
+
+ } else {
+ Method realMethod = null;
+ try {
+ realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(),
+ targetMethod.getParameterTypes());
+ } catch (NoSuchMethodException e) {
+ e.printStackTrace();
+ } catch (SecurityException e) {
+ e.printStackTrace();
+ }
+
+ // 鍒ゆ柇鏄惁鏈夊拷鐣ラ獙璇佺殑娉ㄨВ
+ if (realMethod == null || !realMethod.isAnnotationPresent(RequestNoLogin.class)) {
+ HttpServletResponse response = servletContainer.getResponse();
+ String callback = request.getParameter("callback");
+ if (StringUtil.isNullOrEmpty(callback)) {
+ response.getWriter().print(JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍"));
+ } else {
+ response.getWriter().print(callback + "(" + JsonUtil.loadFalseResult(1, "璇峰厛鐧诲綍") + ")");
+ }
+
+ return null;
+ }
}
}
-
+
Object[] args = joinPoint.getArgs();
Object obj = null;
-
+
try {
obj = joinPoint.proceed(args);
} catch (Throwable e) {
e.printStackTrace();
}
-
+
return obj;
}
-
-
}
--
Gitblit v1.8.0