Browse Source

使用uuid,修改token失效逻辑

xujiawei 4 years ago
parent
commit
1eab933243
1 changed files with 23 additions and 8 deletions
  1. 23 8
      src/main/java/edu/nju/controller/AnalyzeController.java

+ 23 - 8
src/main/java/edu/nju/controller/AnalyzeController.java

@@ -7,6 +7,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -543,14 +544,25 @@ public class AnalyzeController {
 			ShortToken shortToken=aservice.tokenToDetail(token);
 			if(shortToken==null){
 				result.put("result","fail");
-				result.put("cause","no such token");
+				result.put("cause","身份验证失败,请前往慕测官网www.mooctest.net重新进入答题页面");
 			}else {
-				result.put("result", "success");
-				result.put("examId",shortToken.getExamId());
-				result.put("caseId",shortToken.getCaseId());
-				result.put("userId",shortToken.getUserId());
-				result.put("beginTime",shortToken.getBeginTime());
-				result.put("endTime",shortToken.getEndTime());
+				//有效
+				if(shortToken.isDisabled()){
+					shortToken.setDisabled(false);
+					aservice.saveShortToken(shortToken);
+					result.put("result", "success");
+					result.put("examId",shortToken.getExamId());
+					result.put("caseId",shortToken.getCaseId());
+					result.put("userId",shortToken.getUserId());
+					result.put("beginTime",shortToken.getBeginTime());
+					result.put("endTime",shortToken.getEndTime());
+				}
+				//无效
+				else{
+					result.put("result","fail");
+					result.put("cause","身份验证失败,请前往慕测官网www.mooctest.net重新进入答题页面");
+				}
+
 			}
 			PrintWriter out = response.getWriter();
 			out.print(result);
@@ -578,14 +590,17 @@ public class AnalyzeController {
 			ShortToken shortToken=aservice.findTokenByDetail(examId,caseId,userId);
 			if(shortToken==null){
 //				String token=AESUtil.encrypt(examId+"/"+caseId+"/"+userId);
-				String token= DigestUtils.md5DigestAsHex((examId+"/"+caseId+"/"+userId).getBytes());
+				String token= DigestUtils.md5DigestAsHex((UUID.randomUUID().toString()).getBytes());
 				ShortToken newShortToken=new ShortToken(token,beginTime,endTime,caseId,examId,userId,true);
 				aservice.saveShortToken(newShortToken);
 				result.put("result","success");
 				result.put("token",token);
 			}else{
+				String token= DigestUtils.md5DigestAsHex((UUID.randomUUID().toString()).getBytes());
+				shortToken.setToken(token);
 				shortToken.setBeginTime(beginTime);
 				shortToken.setEndTime(endTime);
+				shortToken.setDisabled(true);
 				aservice.saveShortToken(shortToken);
 				result.put("result","success");
 				result.put("token",shortToken.getToken());