最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenFeign調(diào)用服務(wù)請求頭丟失Token的解決

 更新時(shí)間:2021年06月25日 09:53:49   作者:zhangjianshan007  
這篇文章主要介紹了OpenFeign調(diào)用服務(wù)請求頭丟失Token的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

OpenFeign調(diào)用服務(wù)請求頭丟失Token

導(dǎo)致原因:

在這里插入圖片描述

解決方案:

在這里插入圖片描述

代碼實(shí)現(xiàn)

@Configuration
@Slf4j
public class FeignConfig {
    @Value("${jwt.header}")
    private String tokenHeader;
    @Bean("requestInterceptor")
    public RequestInterceptor requestInterceptor() {
        return new RequestInterceptor() {
            @Override
            public void apply(RequestTemplate requestTemplate) {
                log.info("進(jìn)入feign攔截器...");
                ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
                HttpServletRequest request = requestAttributes.getRequest();// 老請求
                String authorization = request.getHeader(tokenHeader);
                log.info(authorization);
                requestTemplate.header(tokenHeader, authorization);
            }
        };
    }
}

Feign傳參對象數(shù)據(jù)丟失問題

Feigin不支持Key-value形式的請求體傳參,所有在傳遞對象參數(shù)的時(shí)候需要將服務(wù)端的接口加上@RequstBody注解,F(xiàn)eign消費(fèi)端也需要加上@RequstBody,但是會出現(xiàn)前端在直接訪問服務(wù)器接口時(shí),需要構(gòu)建JSON串放在Body里傳遞過來。

Get請求又不支持Body。為了解決這個(gè)問題,這里記錄解決方案。

1.如果不考慮前端直接調(diào)用接口和Feign調(diào)用接口不一致

服務(wù)端的接口加上@RequstBody注解,F(xiàn)eign消費(fèi)端也需要加上@RequstBody。

2.升級springboot版本到2.1.x.使用Spring Cloud OpenFeign提供@SpringQueryMap注解

Feign里加上

    class AuditFeiginConfig {
        @Bean
        public Contract customerContract() {
            return new feign.Contract.Default();
        }
    }

完整Feign代碼:

 
import feign.Contract;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam; 
import com.fasterxml.jackson.databind.JsonNode;
import com.galaplat.base.core.common.exception.BaseException;
import com.galaplat.product.center.databook.plugin.vos.AuditVO; 
 
@FeignClient(name = "galaplat-product-center", fallback = AuditFeignHystrixService.class,configuration = IAuditFeign.AuditFeiginConfig.class)
public interface IAuditFeign {    
    @PostMapping("/XXX")
    JsonNode submit(@SpringQueryMap AuditVO auditVO) throws Exception; 
    class AuditFeiginConfig {
        @Bean
        public Contract customerContract() {
            return new feign.Contract.Default();
        }
    }
}

這樣服務(wù)端接口就不一定要加@RequstBody.

服務(wù)端接口代碼

 //這里就可以不加@RequestBody,默認(rèn)應(yīng)該是@RequestParam
    @PostMapping("/XXX")
 public Object submit(AuditVO auditVO) throws Exception {
  return null;
 }

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 基于Spring Security實(shí)現(xiàn)對密碼進(jìn)行加密和校驗(yàn)

    基于Spring Security實(shí)現(xiàn)對密碼進(jìn)行加密和校驗(yàn)

    我們在入門案例中,其實(shí)已經(jīng)是一個(gè)非常簡單的認(rèn)證,但是用戶名是寫死的,密碼也需要從控制臺查看,很顯然實(shí)際中并不能這么做,下面的學(xué)習(xí)中,我們來實(shí)現(xiàn)基于內(nèi)存模型的認(rèn)證以及用戶的自定義認(rèn)證,密碼加密等內(nèi)容,需要的朋友可以參考下
    2024-07-07
  • Java項(xiàng)目有中多個(gè)線程如何查找死鎖

    Java項(xiàng)目有中多個(gè)線程如何查找死鎖

    這篇文章主要介紹了Java項(xiàng)目有中多個(gè)線程如何查找死鎖,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • SpringBoot Jpa 自定義查詢實(shí)現(xiàn)代碼詳解

    SpringBoot Jpa 自定義查詢實(shí)現(xiàn)代碼詳解

    這篇文章主要介紹了SpringBoot Jpa 自定義查詢實(shí)現(xiàn)代碼詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • java開發(fā)分布式服務(wù)框架Dubbo調(diào)用過程

    java開發(fā)分布式服務(wù)框架Dubbo調(diào)用過程

    這篇文章主要為大家介紹了java開發(fā)分布式服務(wù)框架Dubbo調(diào)用過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重復(fù)讀取配置文件的方法

    Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重復(fù)讀取配置文

    這篇文章主要介紹了Java使用ByteArrayOutputStream 和 ByteArrayInputStream 避免重復(fù)讀取配置文件的方法,需要的朋友可以參考下
    2015-12-12
  • JAVA annotation入門基礎(chǔ)

    JAVA annotation入門基礎(chǔ)

    以下是JAVA annotation入門基礎(chǔ),新手朋友們可以過來參考下。希望對你有所幫助
    2013-08-08
  • kafka topic 權(quán)限控制(設(shè)置刪除權(quán)限)

    kafka topic 權(quán)限控制(設(shè)置刪除權(quán)限)

    大家都知道Kafka是一個(gè)消息隊(duì)列,把消息放到隊(duì)列里邊的叫生產(chǎn)者,從隊(duì)列里邊消費(fèi)的叫消費(fèi)者。今天通過本文給大家介紹kafka topic 權(quán)限控制的相關(guān)知識,感興趣的朋友一起看看吧
    2021-11-11
  • 如何在springBoot下搭建日志框架

    如何在springBoot下搭建日志框架

    這篇文章主要介紹了如何在springBoot下搭建日志框架,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Java讀取網(wǎng)絡(luò)文件的實(shí)例代碼

    Java讀取網(wǎng)絡(luò)文件的實(shí)例代碼

    這篇文章主要介紹了Java讀取網(wǎng)絡(luò)文件的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法

    java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法

    這篇文章主要介紹了java編程實(shí)現(xiàn)根據(jù)EXCEL列名求其索引的方法,涉及Java元素遍歷與數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-11-11

最新評論

宿州市| 乐昌市| 修文县| 法库县| 伊金霍洛旗| 定陶县| 万盛区| 东光县| 招远市| 体育| 辉县市| 昌平区| 沙雅县| 保山市| 荔波县| 鸡东县| 新安县| 宣威市| 弥渡县| 普兰县| 璧山县| 永平县| 綦江县| 长泰县| 德安县| 理塘县| 南安市| 揭东县| 泉州市| 通道| 江津市| 旺苍县| 康平县| 本溪市| 江北区| 新疆| 汶川县| 常山县| 阿坝| 金溪县| 边坝县|