1. 程式人生 > 其它 >RestTemplate呼叫前統一申請Token傳遞到呼叫的服務中

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; } }