Commit 767a02be authored by 向怀芳's avatar 向怀芳 🎱

1. 代理IP处理02

parent 356ff45a
......@@ -80,10 +80,7 @@ public class SictTokenEndpoint {
String tokenValue = authHeader.replaceAll("(?i)Bearer", "").trim();
OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
if (accessToken == null || StrUtil.isBlank(accessToken.getValue())) {
return R.builder()
.code(Constant.BYTE_NO)
.data(Boolean.FALSE)
.msg("退出失败,token 无效").build();
return new R();
}
OAuth2Authentication auth2Authentication = tokenStore.readAuthentication(accessToken);
......
......@@ -158,7 +158,7 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
return getIP(WebUtils.getRequest());
}
public String getSession(){
public String getSession() {
return WebUtils.getSessionId(WebUtils.getRequest());
}
......@@ -196,13 +196,17 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
public String getIP(ServerHttpRequest request) {
HttpHeaders headers = request.getHeaders();
String ip = headers.getFirst("x-forwarded-for");
log.error("getIp.ip = {}", ip);
log.error("headers = {}", JSONUtil.toJsonStr(headers));
if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) {
// 多次反向代理后会有多个ip值,第一个ip才是真实ip
if (ip.indexOf(",") != -1) {
if ("127.0.0.1".equals(ip.split(",")[0])) {
ip = ip.split(",")[1];
} else {
ip = ip.split(",")[0];
}
}
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = headers.getFirst("Proxy-Client-IP");
}
......@@ -257,13 +261,12 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
}
/**
*
* @param request HttpServletRequest
* tip: 不可使用WebUtils.getRequest()获取
* @param allowSuffix 文件后缀名 多个以","逗号分隔
* @return
*/
public MultipartFile getRequestFile(@NonNull HttpServletRequest request, @NonNull String allowSuffix){
public MultipartFile getRequestFile(@NonNull HttpServletRequest request, @NonNull String allowSuffix) {
String errorMsg = StrUtil.EMPTY;
String[] suffixs = allowSuffix.split(",");
......@@ -275,26 +278,27 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
file = fileEntity.getValue();
String originalFilename = file.getOriginalFilename();
String suffix = originalFilename.substring(originalFilename.lastIndexOf('.') + 1);
if(suffixSet.contains(suffix)){
if (suffixSet.contains(suffix)) {
break;
}
errorMsg = "文件类型不支持";
}
Assert.isTrue(StrUtil.isBlank(errorMsg), errorMsg);
Objects.requireNonNull(file,"excel导入 ---------->>>>>>> 未检测到上传文件");
Objects.requireNonNull(file, "excel导入 ---------->>>>>>> 未检测到上传文件");
return file;
}
/**
* 导出excel
*
* @param list 数据
* @param writer
* @param name 文件名
*/
@SneakyThrows
public void exportExcel(@NonNull List list,@NonNull ExcelWriter writer, String name) {
public void exportExcel(@NonNull List list, @NonNull ExcelWriter writer, String name) {
writer.setOnlyAlias(true);
HttpServletResponse response = WebUtils.getResponse();
//response为HttpServletResponse对象
......
......@@ -65,7 +65,7 @@ public class RequestGlobalFilter implements GlobalFilter, Ordered {
// IP白名单
String ip = WebUtils.getIP(request);
// log.error("RemoteAddress = {}, ip = {}", request.getRemoteAddress(), ip);
log.error("RemoteAddress = {}, ip = {}", request.getRemoteAddress(), ip);
try {
if (whitIPConfig.getLimitFlag() && !IPStrUtil.matches(ip, whitIPConfig.getWhites())) {
ServerHttpResponse response = exchange.getResponse();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment