From 0fa0e7334278910649cf6a1afe0fdf0ced67d146 Mon Sep 17 00:00:00 2001 From: ajaxfan <909938737@qq.com> Date: Wed, 30 Dec 2020 15:53:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=20feign=20config?= =?UTF-8?q?=EF=BC=8C=20=E8=B0=83=E6=95=B4=E4=BA=86request=20header?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/ebtp/common/config/FeignConfig.java | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/config/FeignConfig.java b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/config/FeignConfig.java index ed74cfc..d2be1a7 100644 --- a/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/config/FeignConfig.java +++ b/uboot-common/src/main/java/com/chinaunicom/mall/ebtp/common/config/FeignConfig.java @@ -1,12 +1,12 @@ package com.chinaunicom.mall.ebtp.common.config; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; + import feign.RequestInterceptor; import feign.RequestTemplate; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; - -import javax.servlet.http.HttpServletRequest; /** * fegin调用时 header中添加JwtToken @@ -14,14 +14,24 @@ import javax.servlet.http.HttpServletRequest; @Configuration public class FeignConfig implements RequestInterceptor { - @Override - public void apply(RequestTemplate template) { - ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); - if (null != attributes) { - HttpServletRequest request = attributes.getRequest(); - String token = request.getHeader("JwtToken"); - template.header("JwtToken", token); - } - } + private final String AUTHORIZATION_HEADER = "Authorization"; + private final String BEARER_TOKEN_TYPE = "Bearer"; + + @Override + public void apply(RequestTemplate template) { +// ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); +// if (null != attributes) { +// HttpServletRequest request = attributes.getRequest(); +// String token = request.getHeader("JwtToken"); +// template.header("JwtToken", token); +// } + SecurityContext securityContext = SecurityContextHolder.getContext(); + Authentication authentication = securityContext.getAuthentication(); + + if (authentication != null && authentication.getCredentials() instanceof String) { + String token = (String) authentication.getCredentials(); + template.header(AUTHORIZATION_HEADER, String.format("%s %s", BEARER_TOKEN_TYPE, token)); + } + } }