Как добавить HTTP-заголовок в тесты MicroShedTest и SharedContainerConfig JUnit - PullRequest
0 голосов
/ 06 мая 2020

У меня есть интеграционные тесты, которые работали без сбоев, пока я не добавил безопасность в свое приложение. Безопасность использует настраиваемый ключ api, а проверка выполняется в настраиваемом HttpAuthenticationMechanism из заголовка X-API-Key.

Мне нужно выяснить, можно ли добавить заголовки к вызовам, сделанным тестом люкс. Я проверил inte rnet, и все, что я нашел, это @BasicAuthConfig и @JwtConfig, которые бесполезны.

Мне нужно добавить заголовок «X-API-Key» к HTTP-вызовам контейнеров.

1 Ответ

0 голосов
/ 08 мая 2020

Я не нашел ничего полезного, поэтому создал собственное решение. Вместо того, чтобы полагаться на @RESTClient, чтобы дать мне ресурсный прокси, я создал свой собственный, вот так:

public static <T> T getResourceProxy(Class<T> t) {
    Map<String, String> headerMap = new HashMap<>();
    headerMap.put("X-API-Key", "abcdefg.abcdefg1234567hij890");
    headerMap.put("Content-Type", "application/json");
    headerMap.put("Accept", "application/json, text/plain");

    JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
    bean.setHeaders(headerMap);
    bean.setResourceClass(t);
    bean.setAddress("http://localhost:8080/myApp");

    List<Object> providers = new ArrayList<>();

    providers.add(new JacksonJaxbJsonProvider());
    providers.add(new JacksonJsonProvider());
    bean.setProviders(providers);

    return bean.create(t);
}
...