package com.feedback.service.utils;
import cn.hutool.core.util.StrUtil;
import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.Optional;
/**
* @author
* @desc 应用级对象获取工具类
* @since
*/
public class RequestContextHolderUtil {
public static String getHeader(String headerName){
return getRequest().getHeader(headerName);
}
public static HttpServletRequest getRequest() {
return getRequestAttributes().getRequest();
}
public static HttpServletResponse getResponse() {
return getRequestAttributes().getResponse();
}
public static HttpSession getSession() {
return getRequest().getSession();
}
public static ServletRequestAttributes getRequestAttributes() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
}
public static ServletContext getServletContext() {
return ContextLoader.getCurrentWebApplicationContext().getServletContext();
}
public static String getUserAgent() {
HttpServletRequest request = getRequest();
return Optional.ofNullable(request.getHeader("user-agent")).orElse(StrUtil.EMPTY);
}
public static String getRemoteAddr() {
HttpServletRequest request = getRequest();
String remoteAddr = request.getHeader("X-Real-IP");
if (StrUtil.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("X-Forwarded-For");
} else if (StrUtil.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("Proxy-Client-IP");
} else if (StrUtil.isNotBlank(remoteAddr)) {
remoteAddr = request.getHeader("WL-Proxy-Client-IP");
}
return Optional.ofNullable(remoteAddr).orElse(request.getRemoteAddr());
}
public static String requestUrl() {
return Optional.ofNullable(getRequest().getRequestURI()).orElse(StrUtil.EMPTY);
}
public static String requestMethod() {
return Optional.ofNullable(getRequest().getMethod()).orElse(StrUtil.EMPTY);
}
}
RequestContextHolderUtil
最新推荐文章于 2024-07-12 11:21:29 发布