java - 如何将参数传递给 FeignRequestInterceptor?
问题描述
我有这个代码
@Component()
public class FeignRequestInterceptor {
@Bean
public RequestInterceptor basicAuthRequestInterceptor() {
return new BasicAuthRequestInterceptor("username", "password");
}
}
有没有办法可以将用户名和密码作为参数传递?
我有一个拦截请求的过滤器,那里有一些标头,我想使用这些标头来设置user
,password
所以当我稍后使用 feign 客户端处理另一个请求时,我有这些标头
解决方案
伙计们,我找到了这个解决方案,不知道它是否是最好的,但它确实有效。
我从上面删除了代码,甚至删除了过滤器来拦截请求,我使用了这个
@Configuration
public class FeignRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate template) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
.getRequest();
String token = "Basic " + Base64.getEncoder().encodeToString(
(request.getParameter("username") + ":" + request.getParameter("password")).getBytes(Charsets.UTF_8));
template.header("Authorization", token);
}
}
推荐阅读
- reactjs - 如何配置aws amplify的多语言响应?
- android - 如何将我的 android 应用程序编码为永久驻留在运行服务的开发人员选项中
- python - 在 DataFrame 中仅添加工作日到日期列
- django-rest-framework - DjangRESTFramework 中的 RetrieveAPI 不起作用
- mysql - OUTER in LEFT OUTER JOIN MySQL
- javascript - 如何避免从 contenteditable 中删除键入的文本
在 jQuery 中
- javascript - 如何使用 forEach 将 javascript 中的数组元素转换为独立数组
- c++ - C++ MPI_Reduce 矩阵的行
- jquery - 将省略号添加到分页行
- django - CSS 更改未出现 - Django