boot3:适合 ServletUtils
parent
d23ed5a61d
commit
e5fcc7a387
|
@ -25,4 +25,8 @@ public class ServletUtils {
|
||||||
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void write(HttpServletResponse response, String text, String contentType) {
|
||||||
|
ServletUtil.write(response, text, contentType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,4 +25,8 @@ public class ServletUtils {
|
||||||
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
ServletUtil.write(response, content, MediaType.APPLICATION_JSON_UTF8_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void write(HttpServletResponse response, String text, String contentType) {
|
||||||
|
ServletUtil.write(response, text, contentType);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户端工具类
|
* 客户端工具类
|
||||||
|
@ -40,7 +41,6 @@ public class ServletUtils {
|
||||||
* @param response 响应
|
* @param response 响应
|
||||||
* @param filename 文件名
|
* @param filename 文件名
|
||||||
* @param content 附件内容
|
* @param content 附件内容
|
||||||
* @throws IOException
|
|
||||||
*/
|
*/
|
||||||
public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException {
|
public static void writeAttachment(HttpServletResponse response, String filename, byte[] content) throws IOException {
|
||||||
// 设置 header 和 contentType
|
// 设置 header 和 contentType
|
||||||
|
@ -92,4 +92,19 @@ public class ServletUtils {
|
||||||
return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE);
|
return StrUtil.startWithIgnoreCase(request.getContentType(), MediaType.APPLICATION_JSON_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getBody(HttpServletRequest request) {
|
||||||
|
return ServletUtil.getBody(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte[] getBodyBytes(HttpServletRequest request) {
|
||||||
|
return ServletUtil.getBodyBytes(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getClientIP(HttpServletRequest request) {
|
||||||
|
return ServletUtil.getClientIP(request);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<String, String> getParamMap(HttpServletRequest request) {
|
||||||
|
return ServletUtil.getParamMap(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.exceptions.ExceptionUtil;
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
|
||||||
|
@ -221,7 +220,7 @@ public class OperateLogAspect {
|
||||||
// 补全请求信息
|
// 补全请求信息
|
||||||
operateLogObj.setRequestMethod(request.getMethod());
|
operateLogObj.setRequestMethod(request.getMethod());
|
||||||
operateLogObj.setRequestUrl(request.getRequestURI());
|
operateLogObj.setRequestUrl(request.getRequestURI());
|
||||||
operateLogObj.setUserIp(ServletUtil.getClientIP(request));
|
operateLogObj.setUserIp(ServletUtils.getClientIP(request));
|
||||||
operateLogObj.setUserAgent(ServletUtils.getUserAgent(request));
|
operateLogObj.setUserAgent(ServletUtils.getUserAgent(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@ package cn.iocoder.yudao.framework.apilog.core.filter;
|
||||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.exceptions.ExceptionUtil;
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLog;
|
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLog;
|
||||||
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService;
|
import cn.iocoder.yudao.framework.apilog.core.service.ApiAccessLogFrameworkService;
|
||||||
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
|
||||||
|
@ -50,8 +49,8 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
||||||
// 获得开始时间
|
// 获得开始时间
|
||||||
LocalDateTime beginTime = LocalDateTime.now();
|
LocalDateTime beginTime = LocalDateTime.now();
|
||||||
// 提前获得参数,避免 XssFilter 过滤处理
|
// 提前获得参数,避免 XssFilter 过滤处理
|
||||||
Map<String, String> queryString = ServletUtil.getParamMap(request);
|
Map<String, String> queryString = ServletUtils.getParamMap(request);
|
||||||
String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtil.getBody(request) : null;
|
String requestBody = ServletUtils.isJsonRequest(request) ? ServletUtils.getBody(request) : null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 继续过滤器
|
// 继续过滤器
|
||||||
|
@ -101,7 +100,7 @@ public class ApiAccessLogFilter extends ApiRequestFilter {
|
||||||
accessLog.setRequestParams(toJsonString(requestParams));
|
accessLog.setRequestParams(toJsonString(requestParams));
|
||||||
accessLog.setRequestMethod(request.getMethod());
|
accessLog.setRequestMethod(request.getMethod());
|
||||||
accessLog.setUserAgent(ServletUtils.getUserAgent(request));
|
accessLog.setUserAgent(ServletUtils.getUserAgent(request));
|
||||||
accessLog.setUserIp(ServletUtil.getClientIP(request));
|
accessLog.setUserIp(ServletUtils.getClientIP(request));
|
||||||
// 持续时间
|
// 持续时间
|
||||||
accessLog.setBeginTime(beginTime);
|
accessLog.setBeginTime(beginTime);
|
||||||
accessLog.setEndTime(LocalDateTime.now());
|
accessLog.setEndTime(LocalDateTime.now());
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package cn.iocoder.yudao.framework.web.core.filter;
|
package cn.iocoder.yudao.framework.web.core.filter;
|
||||||
|
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
||||||
|
|
||||||
import javax.servlet.ReadListener;
|
import javax.servlet.ReadListener;
|
||||||
import javax.servlet.ServletInputStream;
|
import javax.servlet.ServletInputStream;
|
||||||
|
@ -25,7 +25,7 @@ public class CacheRequestBodyWrapper extends HttpServletRequestWrapper {
|
||||||
|
|
||||||
public CacheRequestBodyWrapper(HttpServletRequest request) {
|
public CacheRequestBodyWrapper(HttpServletRequest request) {
|
||||||
super(request);
|
super(request);
|
||||||
body = ServletUtil.getBodyBytes(request);
|
body = ServletUtils.getBodyBytes(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -2,7 +2,6 @@ package cn.iocoder.yudao.framework.web.core.handler;
|
||||||
|
|
||||||
import cn.hutool.core.exceptions.ExceptionUtil;
|
import cn.hutool.core.exceptions.ExceptionUtil;
|
||||||
import cn.hutool.core.map.MapUtil;
|
import cn.hutool.core.map.MapUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLog;
|
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLog;
|
||||||
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService;
|
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService;
|
||||||
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
||||||
|
@ -261,12 +260,12 @@ public class GlobalExceptionHandler {
|
||||||
errorLog.setApplicationName(applicationName);
|
errorLog.setApplicationName(applicationName);
|
||||||
errorLog.setRequestUrl(request.getRequestURI());
|
errorLog.setRequestUrl(request.getRequestURI());
|
||||||
Map<String, Object> requestParams = MapUtil.<String, Object>builder()
|
Map<String, Object> requestParams = MapUtil.<String, Object>builder()
|
||||||
.put("query", ServletUtil.getParamMap(request))
|
.put("query", ServletUtils.getParamMap(request))
|
||||||
.put("body", ServletUtil.getBody(request)).build();
|
.put("body", ServletUtils.getBody(request)).build();
|
||||||
errorLog.setRequestParams(JsonUtils.toJsonString(requestParams));
|
errorLog.setRequestParams(JsonUtils.toJsonString(requestParams));
|
||||||
errorLog.setRequestMethod(request.getMethod());
|
errorLog.setRequestMethod(request.getMethod());
|
||||||
errorLog.setUserAgent(ServletUtils.getUserAgent(request));
|
errorLog.setUserAgent(ServletUtils.getUserAgent(request));
|
||||||
errorLog.setUserIp(ServletUtil.getClientIP(request));
|
errorLog.setUserIp(ServletUtils.getClientIP(request));
|
||||||
errorLog.setExceptionTime(LocalDateTime.now());
|
errorLog.setExceptionTime(LocalDateTime.now());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package cn.iocoder.yudao.module.trade.controller.app.order;
|
package cn.iocoder.yudao.module.trade.controller.app.order;
|
||||||
|
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
import cn.iocoder.yudao.framework.security.core.annotations.PreAuthenticated;
|
||||||
|
@ -55,7 +54,7 @@ public class AppTradeOrderController {
|
||||||
HttpServletRequest servletRequest) {
|
HttpServletRequest servletRequest) {
|
||||||
// 获取登录用户、用户 IP 地址
|
// 获取登录用户、用户 IP 地址
|
||||||
Long loginUserId = getLoginUserId();
|
Long loginUserId = getLoginUserId();
|
||||||
String clientIp = ServletUtil.getClientIP(servletRequest);
|
String clientIp = ServletUtils.getClientIP(servletRequest);
|
||||||
// 创建交易订单,预支付记录
|
// 创建交易订单,预支付记录
|
||||||
Long orderId = tradeOrderService.createOrder(loginUserId, clientIp, createReqVO);
|
Long orderId = tradeOrderService.createOrder(loginUserId, clientIp, createReqVO);
|
||||||
return success(orderId);
|
return success(orderId);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package cn.iocoder.yudao.module.system.controller.admin.captcha;
|
package cn.iocoder.yudao.module.system.controller.admin.captcha;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
import com.xingyuv.captcha.model.common.ResponseModel;
|
import com.xingyuv.captcha.model.common.ResponseModel;
|
||||||
import com.xingyuv.captcha.model.vo.CaptchaVO;
|
import com.xingyuv.captcha.model.vo.CaptchaVO;
|
||||||
|
@ -50,7 +50,7 @@ public class CaptchaController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getRemoteId(HttpServletRequest request) {
|
public static String getRemoteId(HttpServletRequest request) {
|
||||||
String ip = ServletUtil.getClientIP(request);
|
String ip = ServletUtils.getClientIP(request);
|
||||||
String ua = request.getHeader("user-agent");
|
String ua = request.getHeader("user-agent");
|
||||||
if (StrUtil.isNotBlank(ip)) {
|
if (StrUtil.isNotBlank(ip)) {
|
||||||
return ip + ua;
|
return ip + ua;
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
package cn.iocoder.yudao.module.system.controller.admin.sms;
|
package cn.iocoder.yudao.module.system.controller.admin.sms;
|
||||||
|
|
||||||
import cn.hutool.extra.servlet.ServletUtil;
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
||||||
import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
|
import cn.iocoder.yudao.framework.sms.core.enums.SmsChannelEnum;
|
||||||
import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
|
import cn.iocoder.yudao.module.system.service.sms.SmsSendService;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
@ -30,7 +30,7 @@ public class SmsCallbackController {
|
||||||
@Operation(summary = "阿里云短信的回调", description = "参见 https://help.aliyun.com/document_detail/120998.html 文档")
|
@Operation(summary = "阿里云短信的回调", description = "参见 https://help.aliyun.com/document_detail/120998.html 文档")
|
||||||
@OperateLog(enable = false)
|
@OperateLog(enable = false)
|
||||||
public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable {
|
public CommonResult<Boolean> receiveAliyunSmsStatus(HttpServletRequest request) throws Throwable {
|
||||||
String text = ServletUtil.getBody(request);
|
String text = ServletUtils.getBody(request);
|
||||||
smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text);
|
smsSendService.receiveSmsStatus(SmsChannelEnum.ALIYUN.getCode(), text);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ public class SmsCallbackController {
|
||||||
@Operation(summary = "腾讯云短信的回调", description = "参见 https://cloud.tencent.com/document/product/382/52077 文档")
|
@Operation(summary = "腾讯云短信的回调", description = "参见 https://cloud.tencent.com/document/product/382/52077 文档")
|
||||||
@OperateLog(enable = false)
|
@OperateLog(enable = false)
|
||||||
public CommonResult<Boolean> receiveTencentSmsStatus(HttpServletRequest request) throws Throwable {
|
public CommonResult<Boolean> receiveTencentSmsStatus(HttpServletRequest request) throws Throwable {
|
||||||
String text = ServletUtil.getBody(request);
|
String text = ServletUtils.getBody(request);
|
||||||
smsSendService.receiveSmsStatus(SmsChannelEnum.TENCENT.getCode(), text);
|
smsSendService.receiveSmsStatus(SmsChannelEnum.TENCENT.getCode(), text);
|
||||||
return success(true);
|
return success(true);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue