cl
6 天以前 559c37bc47cccaabf5096097d35ee6848fbe477f
打印
1个文件已修改
27 ■■■■■ 已修改文件
rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-open-api/src/main/java/com/vincent/rsf/openApi/security/filter/AppIdAuthenticationFilter.java
@@ -18,6 +18,8 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import java.util.StringJoiner;
/**
 * AppId/Token 认证过滤器
@@ -47,7 +49,7 @@
            String token = TokenUtils.extractTokenFromHeader(authHeader);
            String tokenAppId = token != null ? tokenService.getAppIdIfValid(token) : null;
            if (!StringUtils.hasText(tokenAppId)) {
                log.warn("Token验证失败或缺失");
                log.warn("Token验证失败或缺失 url={} params={}", requestUrlWithQuery(request), formatRequestParams(request));
                sendErrorResponse(response, Constants.UNAUTHENTICATED_CODE, "认证失败,请提供有效的Token");
                return;
            }
@@ -75,6 +77,29 @@
        writer.flush();
    }
    private static String requestUrlWithQuery(HttpServletRequest request) {
        StringBuilder sb = new StringBuilder(request.getRequestURL());
        String qs = request.getQueryString();
        if (StringUtils.hasText(qs)) {
            sb.append('?').append(qs);
        }
        return sb.toString();
    }
    private static String formatRequestParams(HttpServletRequest request) {
        Map<String, String[]> pm = request.getParameterMap();
        if (pm.isEmpty()) {
            return "-";
        }
        StringJoiner j = new StringJoiner("&");
        for (Map.Entry<String, String[]> e : pm.entrySet()) {
            for (String v : e.getValue()) {
                j.add(e.getKey() + "=" + v);
            }
        }
        return j.toString();
    }
    private boolean isAuthRequest(String requestURI) {
        return requestURI != null && requestURI.contains("/getToken");
    }