private static RestTemplate createSessionTemplate()

in common/src/main/java/org/jetbrains/teamcity/vault/support/VaultTemplate.java [84:109]


    private static RestTemplate createSessionTemplate(@NotNull VaultEndpoint endpoint,
                                                      @NotNull ClientHttpRequestFactory requestFactory,
                                                      @NotNull final SessionManager sessionManager) {

        RestTemplate restTemplate = UtilKt.createRestTemplate(endpoint, requestFactory);

        restTemplate.getInterceptors().add(new ClientHttpRequestInterceptor() {

            @Override
            public ClientHttpResponse intercept(HttpRequest request, byte[] body,
                                                ClientHttpRequestExecution execution) throws IOException {

                final VaultToken sessionToken = sessionManager.getSessionToken();
                if (sessionToken != null) {
                    final String token = sessionToken.getToken();
                    if (token != null) {
                        request.getHeaders().set(VaultHttpHeaders.VAULT_TOKEN, token);
                    }
                }

                return execution.execute(request, body);
            }
        });

        return restTemplate;
    }