首页 > Spring Cloud 阅读:734

RestTemplate调用前统一申请Token传递到调用的服务中

如果项目中用的 RestTemplate 来调用服务提供的接口,可以利用 RestTemplate 的拦截器来传递 Token,代码如下所示。
@Component
public class TokenInterceptor implements ClientHttpRequestInterceptor {

    @Override
    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
            throws IOException {
        System.err.println("进入RestTemplate拦截器");
        HttpHeaders headers = request.getHeaders();
        headers.add("Authorization", System.getProperty("fangjia.auth.token"));
        return execution.execute(request, body);
    }
}
将拦截器注入 RestTemplate,代码如下所示。
@Configuration
public class BeanConfiguration {

    @Autowired
    private TokenInterceptor tokenInterceptor;

    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate() {
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.setInterceptors(Collections.singletonList(tokenInterceptor));
        return restTemplate;
    }
}

Java交流群:739993120(我们会不定期在群内分享Java知识,上传Java资料)

编程帮,一个分享编程知识的公众号。跟着站长一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

文章不深奥,不需要钻研,在公交、在地铁、在厕所都可以阅读,随时随地涨姿势。

文章不涉及代码,不烧脑细胞,人人都可以学习。

当你决定关注「编程帮」,你已然超越了90%的程序员!

编程帮二维码
微信扫描二维码关注