实现效果

image-ptbb.png

具体实现方式

在框架中的文件地址

com.ruoyi.framework.aspectj.RateLimiterAspect

实现代码

在doBefore中增加以下代码

HttpServletRequest request = attributes.getRequest();
        if (log.isDebugEnabled()) {
            log.debug("请求URL:{}", request.getRequestURL());
            log.debug("请求方法类型:{}", request.getMethod());
            log.debug("请求入参:{}", JSON.toJSONString(getParameters(request.getParameterNames(), request)));
        }


    private Object getHeaders(Enumeration<String> headerNames, HttpServletRequest request) {
        if (headerNames != null)
        {
            Map<String, String> headers = new HashMap<>();
            while (headerNames.hasMoreElements())
            {
                String key = headerNames.nextElement();
                headers.put(key, request.getHeader(key));
            }
            return headers;
        }
        return null;
    }

    private Object getParameters(Enumeration<String> parameterNames, HttpServletRequest request) {
        if (parameterNames != null)
        {
            Map<String, Object> params = new HashMap<>();

            while (parameterNames.hasMoreElements())
            {
                String parameterName = parameterNames.nextElement();
                params.put(parameterName, request.getParameter(parameterName));
                if (params.get(parameterName) instanceof String)
                {
                    params.put(parameterName, ((String) params.get(parameterName)).trim());
                }

            }
             return params;
        }
        return null;
    }

image-jqvz.png