From d0e02d299d4647955d1d3337abe3f87d9f7f9de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Mon, 19 Nov 2018 12:43:26 +0800 Subject: [PATCH] :fire: Removing code or files. --- .../pigx/common/core/util/WebUtils.java | 39 ++++++++++++- .../filter/ValidateCodeGatewayFilter.java | 57 +------------------ .../SysSocialDetailsController.java | 2 - 3 files changed, 39 insertions(+), 59 deletions(-) diff --git a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java b/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java index 8609e791e..73d880b36 100644 --- a/pigx-common/pigx-common-core/src/main/java/com/pig4cloud/pigx/common/core/util/WebUtils.java +++ b/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)}; + } + +} diff --git a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java b/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java index 8f27ef5b4..cb08fc05b 100644 --- a/pigx-gateway/src/main/java/com/pig4cloud/pigx/gateway/filter/ValidateCodeGatewayFilter.java +++ b/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); } diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java index 1390dd68d..cb29c0ced 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysSocialDetailsController.java +++ b/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;