提交 b52f5a0d 作者: yanxin

添加openfeign 用户信息透传配置

上级 e694b6de
package com.zzsn.leaderbase.config;
import com.zzsn.leaderbase.util.AuthUtil;
import feign.Logger;
import feign.RequestInterceptor;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.FeignAutoConfiguration;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.Scope;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
@ConditionalOnProperty(prefix = "spring.profiles",value = "active",havingValue = "nacos")
@AutoConfigureBefore(FeignAutoConfiguration.class)
@Slf4j
@Configuration
public class FeignConfig {
@Bean
public RequestInterceptor requestInterceptor() {
return requestTemplate -> {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (null != attributes) {
HttpServletRequest request = attributes.getRequest();
log.info("Feign request: {}", request.getRequestURI());
// 将用户信息放入header中
String token = request.getHeader(AuthUtil.LOGIN_USER_HEADER);
requestTemplate.header(AuthUtil.LOGIN_USER_HEADER, token);
}
};
}
/**
* Feign 客户端的日志记录,默认级别为NONE
* Logger.Level 的具体级别如下:
* NONE:不记录任何信息
* BASIC:仅记录请求方法、URL以及响应状态码和执行时间
* HEADERS:除了记录 BASIC级别的信息外,还会记录请求和响应的头信息
* FULL:记录所有请求与响应的明细,包括头信息、请求体、元数据
*/
@Bean
Logger.Level feignLoggerLevel() {
return Logger.Level.FULL;
}
/**
* Feign支持文件上传
* @param messageConverters
* @return
*/
@Bean
@Primary
@Scope("prototype")
public Encoder multipartFormEncoder(ObjectFactory<HttpMessageConverters> messageConverters) {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
}
......@@ -387,6 +387,7 @@ public class CharacterBasicInfoServiceImpl extends ServiceImpl<CharacterBasicInf
//合并两个对象
oldBasicInfo.setSex(basicInfo.getSex());
oldBasicInfo.setBirthday(basicInfo.getBirthday());
oldBasicInfo.setNation(basicInfo.getNation());
oldBasicInfo.setNativePlace(basicInfo.getNativePlace());
oldBasicInfo.setSchool(basicInfo.getSchool());
oldBasicInfo.setSchoolSpeciality(basicInfo.getSchoolSpeciality());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论