Explorar o código

:fire: Removing code or files.

冷冷 %!s(int64=6) %!d(string=hai) anos
pai
achega
d0e02d299d

+ 37 - 2
pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java

@@ -19,10 +19,15 @@
 
 package com.pig4cloud.pigx.common.core.util;
 
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.util.CharsetUtil;
 import cn.hutool.json.JSONUtil;
+import com.pig4cloud.pigx.common.core.exception.CheckedException;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.MediaType;
+import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -43,7 +48,7 @@ import java.io.PrintWriter;
  */
 @Slf4j
 public class WebUtils extends org.springframework.web.util.WebUtils {
-
+	private static final String BASIC_ = "Basic ";
 	public static final String UNKNOWN = "unknown";
 
 	/**
@@ -191,5 +196,35 @@ public class WebUtils extends org.springframework.web.util.WebUtils {
 		}
 		return StringUtils.isBlank(ip) ? null : ip.split(",")[0];
 	}
-}
 
+	/**
+	 * 从request 获取CLIENT_ID
+	 *
+	 * @return
+	 */
+	public static String[] getClientId(ServerHttpRequest request) throws Exception {
+		String header = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
+
+		if (header == null || !header.startsWith(BASIC_)) {
+			throw new CheckedException("请求头中client信息为空");
+		}
+		byte[] base64Token = header.substring(6).getBytes("UTF-8");
+		byte[] decoded;
+		try {
+			decoded = Base64.decode(base64Token);
+		} catch (IllegalArgumentException e) {
+			throw new CheckedException(
+				"Failed to decode basic authentication token");
+		}
+
+		String token = new String(decoded, CharsetUtil.UTF_8);
+
+		int delim = token.indexOf(":");
+
+		if (delim == -1) {
+			throw new CheckedException("Invalid basic authentication token");
+		}
+		return new String[]{token.substring(0, delim), token.substring(delim + 1)};
+	}
+
+}

+ 2 - 55
pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java

@@ -17,31 +17,26 @@
 
 package com.pig4cloud.pigx.gateway.filter;
 
-import cn.hutool.core.codec.Base64;
-import cn.hutool.core.util.CharsetUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.pig4cloud.pigx.common.core.constant.CommonConstant;
 import com.pig4cloud.pigx.common.core.constant.SecurityConstants;
-import com.pig4cloud.pigx.common.core.exception.CheckedException;
 import com.pig4cloud.pigx.common.core.exception.ValidateCodeException;
 import com.pig4cloud.pigx.common.core.util.R;
+import com.pig4cloud.pigx.common.core.util.WebUtils;
 import com.pig4cloud.pigx.gateway.config.FilterIgnorePropertiesConfig;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.cloud.gateway.filter.GatewayFilter;
 import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
 import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.stereotype.Component;
 import reactor.core.publisher.Mono;
 
-import java.io.IOException;
-
 /**
  * @author lengleng
  * @date 2018/7/4
@@ -51,58 +46,10 @@ import java.io.IOException;
 @Component
 @AllArgsConstructor
 public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory {
-	private static final String BASIC_ = "Basic ";
 	private final ObjectMapper objectMapper;
 	private final RedisTemplate redisTemplate;
 	private final FilterIgnorePropertiesConfig filterIgnorePropertiesConfig;
 
-	/**
-	 * 从header 请求中的clientId/clientsecect
-	 *
-	 * @param header header中的参数
-	 * @throws CheckedException if the Basic header is not present or is not valid
-	 *                          Base64
-	 */
-	public static String[] extractAndDecodeHeader(String header)
-		throws IOException, CheckedException {
-
-		byte[] base64Token = header.substring(6).getBytes("UTF-8");
-		byte[] decoded;
-		try {
-			decoded = Base64.decode(base64Token);
-		} catch (IllegalArgumentException e) {
-			throw new CheckedException(
-				"Failed to decode basic authentication token");
-		}
-
-		String token = new String(decoded, CharsetUtil.UTF_8);
-
-		int delim = token.indexOf(":");
-
-		if (delim == -1) {
-			throw new CheckedException("Invalid basic authentication token");
-		}
-		return new String[]{token.substring(0, delim), token.substring(delim + 1)};
-	}
-
-	/**
-	 * *从header 请求中的clientId/clientsecect
-	 *
-	 * @param request
-	 * @return
-	 * @throws IOException
-	 */
-	public static String[] extractAndDecodeHeader(ServerHttpRequest request)
-		throws IOException, CheckedException {
-		String header = request.getHeaders().getFirst(HttpHeaders.AUTHORIZATION);
-
-		if (header == null || !header.startsWith(BASIC_)) {
-			throw new CheckedException("请求头中client信息为空");
-		}
-
-		return extractAndDecodeHeader(header);
-	}
-
 	@Override
 	public GatewayFilter apply(Object config) {
 		return (exchange, chain) -> {
@@ -122,7 +69,7 @@ public class ValidateCodeGatewayFilter extends AbstractGatewayFilterFactory {
 			}
 
 			try {
-				String[] clientInfos = extractAndDecodeHeader(request);
+				String[] clientInfos = WebUtils.getClientId(request);
 				if (filterIgnorePropertiesConfig.getClients().contains(clientInfos[0])) {
 					return chain.filter(exchange);
 				}

+ 0 - 2
pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java

@@ -22,7 +22,6 @@ import com.baomidou.mybatisplus.plugins.Page;
 import com.pig4cloud.pigx.admin.api.dto.UserInfo;
 import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails;
 import com.pig4cloud.pigx.admin.service.SysSocialDetailsService;
-import com.pig4cloud.pigx.admin.service.SysUserService;
 import com.pig4cloud.pigx.common.core.util.Query;
 import com.pig4cloud.pigx.common.core.util.R;
 import com.pig4cloud.pigx.common.log.annotation.SysLog;
@@ -45,7 +44,6 @@ import java.util.Map;
 @AllArgsConstructor
 @Api(value = "social", description = "三方账号管理模块")
 public class SysSocialDetailsController {
-	private final SysUserService sysUserService;
 	private final SysSocialDetailsService sysSocialDetailsService;