瀏覽代碼

修改第三方登录接口参数

ting.yin 5 年之前
父節點
當前提交
c0b7997cae

+ 13 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/common/authorization/AuthorizationService.java

@@ -33,6 +33,19 @@ public class AuthorizationService {
         return null;
     }
 
+    public SignatureInfo buildSignature(HttpServletRequest request, String time, String authorization) {
+        long timestamp = 0;
+        try {
+            timestamp = Long.parseLong(StringUtils.trimToNull(time));
+        } catch (Exception e) {
+        }
+        if (!expired(timestamp)) {
+            return SignatureInfo.parse(request.getMethod(), request.getServletPath(), timestamp,
+                    StringUtils.trimToNull(authorization));
+        }
+        return null;
+    }
+
     public AuthInfo buildAuthInfo(HttpServletRequest request) {
         return AuthInfo.parse(StringUtils.trimToEmpty(request.getHeader(HEADER_AUTHINFO_KEY)));
     }

+ 3 - 3
stmms-web/src/main/java/cn/com/qmth/stmms/open/controller/OpenAccountController.java

@@ -48,8 +48,8 @@ public class OpenAccountController {
     private MarkGroupService groupService;
 
     @RequestMapping(value = "/marker/login", method = RequestMethod.POST)
-    public String markerLogin(HttpServletRequest request, RedirectAttributes redirect, @RequestParam String account,
-            @RequestParam String returnUrl) {
+    public String markerLogin(HttpServletRequest request, RedirectAttributes redirect, @RequestParam String time,
+            @RequestParam String authorization, @RequestParam String account, @RequestParam String returnUrl) {
         // 请求参数验证
         account = StringUtils.trimToEmpty(account);
         returnUrl = StringUtils.trimToEmpty(returnUrl);
@@ -61,7 +61,7 @@ public class OpenAccountController {
         }
         // 签名验证,获取访问学校
         School school = null;
-        SignatureInfo info = authorizationService.buildSignature(request);
+        SignatureInfo info = authorizationService.buildSignature(request, time, authorization);
         if (info != null && info.getType() == SignatureType.SECRET) {
             school = schoolService.findByAccessKey(info.getInvoker());
         }