|
@@ -0,0 +1,53 @@
|
|
|
|
|
+package com.mrxu.framework.boot.handle;
|
|
|
|
|
+
|
|
|
|
|
+import com.mrxu.framework.boot.entity.RpcRequestInfo;
|
|
|
|
|
+import com.mrxu.framework.boot.feign.HeaderConstant;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
|
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
|
|
|
|
+
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 功能概要:[当前登录者的用户信息] <br>
|
|
|
|
|
+ *
|
|
|
|
|
+ * @author zzt
|
|
|
|
|
+ * @date 2020/10/14
|
|
|
|
|
+ */
|
|
|
|
|
+@Slf4j
|
|
|
|
|
+public class UserInfoHandler extends HandlerInterceptorAdapter {
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
|
|
|
|
|
+ //获取设置头部信息
|
|
|
|
|
+ RpcRequestInfo requestInfo = RpcRequestInfo.get();
|
|
|
|
|
+ if(requestInfo.getMerchantId() != null){
|
|
|
|
|
+ //已经设置过当前登录信息
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+ String trackId = request.getHeader(HeaderConstant.TRACK_ID);
|
|
|
|
|
+ if (StringUtils.isNotBlank(trackId)) {
|
|
|
|
|
+ requestInfo.setTrackId(trackId);
|
|
|
|
|
+ }
|
|
|
|
|
+ String ip = request.getHeader(HeaderConstant.IP);
|
|
|
|
|
+ if (StringUtils.isNotBlank(ip)) {
|
|
|
|
|
+ requestInfo.setIp(ip);
|
|
|
|
|
+ }
|
|
|
|
|
+ String merchantId = request.getHeader(HeaderConstant.MERCHANT_ID);
|
|
|
|
|
+ if (StringUtils.isNotBlank(merchantId)) {
|
|
|
|
|
+ requestInfo.setMerchantId(merchantId);
|
|
|
|
|
+ }
|
|
|
|
|
+ String userName = request.getHeader(HeaderConstant.USER_NAME);
|
|
|
|
|
+ if (StringUtils.isNotBlank(userName)) {
|
|
|
|
|
+ requestInfo.setUsername(userName);
|
|
|
|
|
+ }
|
|
|
|
|
+ return true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex){
|
|
|
|
|
+ //清理当前登录者信息
|
|
|
|
|
+ RpcRequestInfo.remove();
|
|
|
|
|
+ }
|
|
|
|
|
+}
|