亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

SpringBoot+SpringCloud用戶信息微服務傳遞實現解析

2024-07-09 22:41:23
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了SpringBoot+SpringCloud實現登錄用戶信息在微服務之間的傳遞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

實現思路:

1:準備一個ThreadLocal變量,供線程之間共享。

2:每個微服務對所有過來的Feign調用進行過濾,然后從請求頭中獲取User用戶信息,并存在ThreadLocal變量中。

3:每個微服務在使用FeignClient調用別的微服務時,先從ThreadLocal里面取出user信息,并放在request的請求頭中。

4:封裝為一個注解,在啟動類上標記即可。

代碼樣例:

1:ThreadLocal工具類 :UserInfoContext

package com.test.domi.common.system;import com.test.domi.dao.UserInfo;public class UserInfoContext {  private static ThreadLocal<UserInfo> userInfo = new ThreadLocal<UserInfo>();  public static String KEY_USERINFO_IN_HTTP_HEADER = "X-AUTO-FP-USERINFO";  public UserInfoContext() {  }  public static UserInfo getUser(){    return (UserInfo)userInfo.get();  }  public static void setUser(UserInfo user){    userInfo.set(user);  }}

2:準備承載用戶信息的userInfo實體類(代碼略)

3:編寫攔截器 : TransmitUserInfoFeighClientIntercepter

package com.test.domi.config;import com.alibaba.fastjson.JSON;import com.test.domi.common.system.UserInfoContext;import com.test.domi.dao.UserInfo;import feign.RequestInterceptor;import feign.RequestTemplate;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;public class TransmitUserInfoFeighClientIntercepter implements RequestInterceptor {  private static final Logger log = LoggerFactory.getLogger(TransmitUserInfoFeighClientIntercepter.class);  public TransmitUserInfoFeighClientIntercepter() {  }  @Override  public void apply(RequestTemplate requestTemplate) {    //從應用上下文中取出user信息,放入Feign的請求頭中    UserInfo user = UserInfoContext.getUser();    if (user != null) {      try {        String userJson = JSON.toJSONString(user);        requestTemplate.header("KEY_USERINFO_IN_HTTP_HEADER",new String[]{URLDecoder.decode(userJson,"UTF-8")});      } catch (UnsupportedEncodingException e) {        log.error("用戶信息設置錯誤",e);      }    }  }}

4:編寫過濾器:TransmitUserInfoFilter

package com.test.domi.config;import com.alibaba.fastjson.JSON;import com.test.domi.common.system.UserInfoContext;import com.test.domi.dao.UserInfo;import org.apache.commons.lang.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;public class TransmitUserInfoFilter implements Filter {  private static final Logger log = LoggerFactory.getLogger(TransmitUserInfoFeighClientIntercepter.class);  public TransmitUserInfoFilter() {  }  @Override  public void init(FilterConfig filterConfig) throws ServletException {  }  @Override  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {    this.initUserInfo((HttpServletRequest)request);    chain.doFilter(request,response);  }  private void initUserInfo(HttpServletRequest request){    String userJson = request.getHeader("KEY_USERINFO_IN_HTTP_HEADER");    if (StringUtils.isNotBlank(userJson)) {      try {        userJson = URLDecoder.decode(userJson,"UTF-8");        UserInfo userInfo = (UserInfo) JSON.parseObject(userJson,UserInfo.class);        //將UserInfo放入上下文中        UserInfoContext.setUser(userInfo);      } catch (UnsupportedEncodingException e) {        log.error("init userInfo error",e);      }    }  }  @Override  public void destroy() {  }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩日欧美一区二区| 91国产在线精品| 成人av色在线观看| 4k岛国日韩精品**专区| 色av吧综合网| 国内精品久久久久影院 日本资源| 91av网站在线播放| 成人黄色中文字幕| 性欧美办公室18xxxxhd| 成人两性免费视频| 久热在线中文字幕色999舞| 成人亚洲综合色就1024| 国产精品久久久久久久7电影| 97久久超碰福利国产精品…| 欧美三级xxx| 亚洲精品一区av在线播放| 91av在线看| 欧美三级欧美成人高清www| 国产在线观看91精品一区| 欧美视频二区36p| 国产精品视频免费在线观看| 一区二区三区 在线观看视| 日韩av在线免费观看| 日本三级韩国三级久久| 高清一区二区三区四区五区| 成人激情电影一区二区| 欧美又大又硬又粗bbbbb| 97视频色精品| 日韩av影院在线观看| 亚洲男人天堂九九视频| 国产精品极品美女粉嫩高清在线| 国产精品海角社区在线观看| 91在线视频九色| 亚洲人成电影在线观看天堂色| 日韩电影大片中文字幕| 国产精品h在线观看| 欧美日韩在线视频一区| 欧美日韩激情视频| 欧美激情视频网址| 亚洲电影天堂av| 亚洲美女精品成人在线视频| 日韩视频免费在线观看| 国产精品狠色婷| 97视频在线观看播放| 国产精品扒开腿做爽爽爽男男| 2019国产精品自在线拍国产不卡| 一区二区日韩精品| 秋霞av国产精品一区| 精品成人乱色一区二区| 久久人人爽人人| 色婷婷综合成人av| 欧美亚洲国产成人精品| 欧美精品videossex88| 97视频色精品| 亚洲 日韩 国产第一| 中文字幕在线成人| 亚洲成人激情视频| 亚洲国产精品久久91精品| 最新91在线视频| 日本久久亚洲电影| 国产a∨精品一区二区三区不卡| 亚洲国产精品福利| 精品国产区一区二区三区在线观看| 国产欧美日韩免费看aⅴ视频| 亚洲男人天堂久| 亚洲精品中文字幕女同| 91久久久久久久久久| 一区二区日韩精品| 九色成人免费视频| 久久精品视频中文字幕| 91国内免费在线视频| 96sao精品视频在线观看| 国外成人免费在线播放| 成人在线精品视频| 亚洲美女精品久久| 一区二区三区视频免费| 欧美日韩电影在线观看| 欧美中文字幕视频在线观看| 欧洲s码亚洲m码精品一区| 国产suv精品一区二区三区88区| 国产视频久久久久久久| 91精品视频网站| 日韩午夜在线视频| 国产精品久久国产精品99gif| 欧美大人香蕉在线| 久久综合免费视频| 韩国三级电影久久久久久| 51ⅴ精品国产91久久久久久| 亚洲最新av在线| 日韩视频亚洲视频| 国产一区二区动漫| 国产精品亚洲欧美导航| 亚洲一区二区三区成人在线视频精品| 91产国在线观看动作片喷水| 日韩毛片在线看| 26uuu久久噜噜噜噜| 亚洲有声小说3d| 亚洲精品国产精品久久清纯直播| 国产精品一二三在线| 在线观看亚洲视频| 欧美激情手机在线视频| 中文字幕自拍vr一区二区三区| 亚洲欧洲黄色网| 中文字幕在线视频日韩| 久久国产精品网站| 国产精品人人做人人爽| 欧美噜噜久久久xxx| 97精品在线观看| 国产在线观看精品| 日韩在线www| 九色精品美女在线| 日本精品一区二区三区在线播放视频| 久久国产精品久久精品| 亚洲免费av片| 亚洲精品午夜精品| 91国产一区在线| 日本精品久久中文字幕佐佐木| 国产一区二区三区中文| 亚洲成年网站在线观看| 亚洲国产成人久久综合一区| 亚洲午夜国产成人av电影男同| 91久久精品一区| 国产精品三级美女白浆呻吟| 中国日韩欧美久久久久久久久| 精品久久久久久国产91| 国产精品久久久久久久午夜| 国产精品久久久久久久久免费看| 国产成人涩涩涩视频在线观看| 欧美一区二区三区精品电影| 成人精品视频久久久久| 国产精品成人免费视频| 俺去亚洲欧洲欧美日韩| 亚洲人成绝费网站色www| 日韩欧美国产骚| 欧美国产日本高清在线| 日韩一区二区在线视频| 中文字幕日韩欧美精品在线观看| 精品美女永久免费视频| 国产精品jvid在线观看蜜臀| 亚洲午夜精品久久久久久久久久久久| 欧美成人精品不卡视频在线观看| 韩国三级日本三级少妇99| 欧美色欧美亚洲高清在线视频| 欧美第一页在线| 国产亚洲欧美视频| 欧美极度另类性三渗透| 国产成人精品免费久久久久| 91香蕉亚洲精品| 91黑丝高跟在线| 日韩中文字幕在线| 日本视频久久久| 日本免费久久高清视频| 精品成人国产在线观看男人呻吟| 久久人人97超碰精品888| 亚洲石原莉奈一区二区在线观看| 国产成人jvid在线播放| 国产欧洲精品视频| 久久成人精品电影| 欧美视频在线看| 懂色av中文一区二区三区天美| 久久影院资源站| 尤物九九久久国产精品的特点| 一区二区三区高清国产| 亚洲在线免费视频|