首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot,从配置中伪装静态标头

Spring Boot,从配置中伪装静态标头
EN

Stack Overflow用户
提问于 2018-09-14 20:09:25
回答 2查看 1.8K关注 0票数 1

我在为我的FeignClient从application.yml文件中获取API-key时遇到一些问题。

代码语言:javascript
复制
@FeignClient(name="CRM-api", url="${api_url}", configuration= <myConfiguration.class>)
@Headers({"Authorization: ${api_key}"})
public interface CRMAPIClient {

在Headers注解中有没有可能有一个占位符值?我也试过在每个端点上设置头,但它仍然无法检索api-key的配置。我设法获取${api_url}值,但未获取${api_key}值

// Linus

EN

回答 2

Stack Overflow用户

发布于 2018-10-07 13:42:53

我还没有使用过这种方法,但我将对此进行研究。但是,如果要求是向客户端请求注入Authorization头,那么更好的方式是用BasicAuthRequestIntercepter编写(为了参考,请查看如何使用伪装),然后将头添加到客户端的每个请求中。如果你使用注解来定义你的伪装客户端,那么使用配置属性来定义配置类,然后在这个类中重写拦截器相关的方法并返回你自己的拦截器。示例代码:

代码语言:javascript
复制
import feign.auth.BasicAuthRequestInterceptor;

@Configuration
public class FeignClientConfiguration {
    @Bean
    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
        return new BasicAuthRequestInterceptor("Authorization", ${API_KEY});
     }
 }

然后将这个类注入到你的feign客户端:

代码语言:javascript
复制
@FeignClient(name="service",configuration = FeignClientConfiguration.class)

需要注意的是:(摘自其他文章)在这里使用@Configuration会使这个bean应用于所有@FeignClient,而您不需要configuration = part。如果删除@Configuration,则此bean将被忽略,而configuration = part什么也不做。正确的方法是添加@Configuration,然后使用excludeFilters从@ComponentScan中排除它(如果您只想在一个特定的@FeignClient上使用它

票数 0
EN

Stack Overflow用户

发布于 2020-01-24 15:50:06

请删除@Headers中的"$“符号

可以,您可以通过以下方式发送-

代码语言:javascript
复制
@FeignClient(name="email-service", url ="${email.url}")
public interface EmailService 
{

    @RequestMapping(method = RequestMethod.POST,value="/send_mail", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)                                                                                   
    @Headers({"Content-Type: application/x-www-form-urlencoded","x-auth-id: {email.xauthid}"})
    void sendData(@RequestBody Map<String, ?> formParams);
}



In application.properties of define the configuration
email.url=<<url-for-sending-mail>>
email.xauthid=110
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52331717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档