实现效果
具体实现方式
在框架中的文件地址
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;
}