人妻出轨合集500篇最新
  • 首页
  • 4hu44四虎www在线影院麻豆
  • 波多野结衣在线视频
  • 国产成人亚洲综合无码精品
  • sesese在线观看a片
  • 4hu44四虎www在线影院麻豆

    人妻少妇偷人精品视频 實戰!openFeign怎样實現全鏈路JWT令牌信息不丟失?

    发布日期:2022-05-19 02:15    点击次数:72

    ???

    今天這篇著作介紹一下JWT令牌如安在微服務鏈路中保證信息不丟失?官方稱為令牌中繼。

    什么是令牌中繼?

    令牌中繼无为的講則是讓令牌在微服務鏈路調用中傳遞下去,保證各個微服務能夠獲取令牌中的用戶信息。

    以下訂單的例子來說,如下圖:

    ???

    下單历程

    客戶端攜帶令牌請求網關,網關鑒權顺利后會將令牌中的用戶信息领路出來放在請求頭中下發給訂單服務,同樣的,訂單服務需要將用戶信息傳遞給賬戶服務獲取該用戶的賬戶信息。

    那么問題來了?怎样保證網關服務->訂單服務->賬戶服務這條鏈路中的用戶信息傳遞下去是個痛點

    解決决议

    令牌在openFeign調用過程中是不行自動中繼的,因此必須手動的將令牌信息傳遞下去。

    防备:openFeign在開啟熔斷降級后內部調用開啟了子線程,因此傳統的决议顺利在RequestInterceptor中設置是不可行的。

    那么怎样保證子線程也能獲取請求頭中的用戶信息呢?

    谜底是:RequestContextHolder這個神器。

    RequestContextHolder內部通過InheritableThreadLocal實現子線程分享信息。

    在FeignCircuitBreakerInvocationHandler這個類中亦然有如下一滑代碼:

    RequestContextHolder.setRequestAttributes(requestAttributes); 

    恰是使用RequestContextHolder將request的信息保存在其中, 表妺好紧竟然流水了在线观看因此實現令牌中繼只需要讀取RequestContextHolder的信息即可。

    詳細代碼如下:

    /**  * @author 公眾號:碼猿技術專欄  * 用于實現令牌信息中繼  */ @Component public class FeignRequestInterceptor implements RequestInterceptor {     @Override     public void apply(RequestTemplate template) {         //從RequestContextHolder中獲取HttpServletRequest         HttpServletRequest httpServletRequest = RequestContextUtils.getRequest();         //獲取RequestContextHolder中的信息         Map<String4hu44四虎www在线影院麻豆 String> headers = getHeaders(httpServletRequest);         //放入feign的RequestTemplate中         for (Map.Entry<String, String> entry : headers.entrySet()) {             template.header(entry.getKey(), entry.getValue());         }     }      /**      * 獲取原請求頭      */     private Map<String, String> getHeaders(HttpServletRequest request) {         Map<String, String> map = new LinkedHashMap<>();         Enumeration<String> enumeration = request.getHeaderNames();         if (enumeration != null) {             while (enumeration.hasMoreElements()) {                 String key = enumeration.nextElement();                 String value = request.getHeader(key);                 map.put(key, value);             }         }         return map;     } } 

    源碼目錄如下圖:

    ???

    不出意外的话,今年的销量冠军一定会被苹果收入囊中。华为倒下后,小米的发展势头也有所收敛,很多人担心中国的手机市场,可能再一次出现苹果一家独大的局面,并且重新回到苹果统治的时代。事实上,这并不是危言耸听,从数据上我们就能看出国内手机市场的形势并不乐观。

    芯片断供直接限制了华为手机业务的发展,不仅美国不给华为供给芯片,台积电等代工厂的生产线因为多少含有美国的技术,也无法给华为进行芯片代工,最后实在没有办法,逼得华为把荣耀剥离出去。



    Powered by 人妻出轨合集500篇最新 @2013-2022 RSS地图 HTML地图