public class FeignBasicAuthRequestInterceptor implements RequestInterceptor {
@Autowired
private SystemAuthProperties systemAuthProperties;
public FeignBasicAuthRequestInterceptor() {
}
@Override
public void apply(RequestTemplate template) {
//header传递处理
HttpServletRequest request = getHttpServletRequest();
if (Objects.nonNull(request)) {
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String values = request.getHeader(name);
template.header(name, values);
}
if (log.isDebugEnabled()) {
log.info("feign interceptor header:{}", template);
}
}
template.header(BasicAuthorizationUtils.HTTP_HEADER_CLIENT_ID, systemAuthProperties.getClientId());
String date = LocalDateTime.now().format(DateTimeFormatter.ofPattern(DateUtils.YYYY_MM_DD_HH_MM_SS));
template.header(BasicAuthorizationUtils.HTTP_HEADER_DATE, date);
template.header(BasicAuthorizationUtils.HTTP_HEADER_SIGNATURE, BasicAuthorizationUtils.generateAuthSignature(date,
systemAuthProperties.getClientId(), systemAuthProperties.getClientSecret()));
if (log.isDebugEnabled()) {
log.info("feign interceptor header:{}", template);
}
}
}
/**
* RequestContextHolder 中获取 HttpServletRequest对象
*
* @return
*/
private HttpServletRequest getHttpServletRequest() {
try {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
} catch (Exception e) {
return null;
}
}
}
feign拦截器FeignBasicAuthRequestInterceptor
最新推荐文章于 2023-04-25 14:09:37 发布