Jelajahi Sumber

修改验证方式

koul 4 tahun lalu
induk
melakukan
7228de9983

+ 6 - 8
src/main/java/com/uas/eis/core/support/ApiSignLoginInterceptor.java

@@ -29,10 +29,10 @@ public class ApiSignLoginInterceptor extends HandlerInterceptorAdapter {
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 
-        Map<String, Object> result = new HashMap<String, Object>();
         String timestamp = request.getHeader(TIMESTAMP_KEY);
         String accessKey = request.getHeader(ACCESS_KEY);
         String requestId = request.getHeader(RequestId);
+        String originSign = request.getHeader(SIGN_KEY);
 
         String accessSecret = tokenConfig.get(accessKey);
         if (StringUtils.isEmpty(requestId)) {
@@ -69,7 +69,7 @@ public class ApiSignLoginInterceptor extends HandlerInterceptorAdapter {
             throw new ApiSystemException(apiResult);
         }
 
-        if (!verificationSign(request, accessKey, accessSecret)) {
+        if (!verificationSign(accessKey, accessSecret,timestamp,requestId,originSign)) {
             ApiResult apiResult = new ApiResult();
             apiResult.setCode(ErrorMessage.SIGNATURE_ILLEGAL.getCode());
             apiResult.setMessage(ErrorMessage.SIGNATURE_ILLEGAL.getMessage());
@@ -79,13 +79,11 @@ public class ApiSignLoginInterceptor extends HandlerInterceptorAdapter {
         return true;
     }
 
-    private boolean verificationSign(HttpServletRequest request, String accessKey, String accessSecret) throws UnsupportedEncodingException {
-        Enumeration<?> pNames = request.getHeaderNames();
+    private boolean verificationSign(String accessKey, String accessSecret,String timestamp,String requestId,String originSign) throws UnsupportedEncodingException {
         Map<String, Object> params = new HashMap<String, Object>();
-        params.put(ACCESS_KEY,request.getHeader(ACCESS_KEY));
-        params.put(RequestId,request.getHeader(RequestId));
-        params.put(TIMESTAMP_KEY,request.getHeader(TIMESTAMP_KEY));
-        String originSign = request.getHeader(SIGN_KEY);
+        params.put(ACCESS_KEY,accessKey);
+        params.put(RequestId,requestId);
+        params.put(TIMESTAMP_KEY,timestamp);
         String sign = createSign(params, accessSecret);
         System.out.println(sign);
         return sign.equals(originSign);