如何向MicroShedTest和SharedContainerConfig JUnit测试添加HTTP标头

问题描述 投票:0回答:1

我的集成测试一直运行顺利,直到为应用程序增加安全性为止。安全性使用自定义生成的api密钥,并且验证是通过标头“ X-API-Key”的自定义HttpAuthenticationMechanism完成的。

我需要找出是否可以在测试套件的调用中添加标题。我已经检查了互联网,发现的只是@BasicAuthConfig@JwtConfig,这没有任何用处。

我需要在对容器的http调用中添加标头'X-API-Key'。

integration-testing junit5 payara payara-micro
1个回答
0
投票

我没有发现有用的东西,所以我创建了自己的解决方案。而不是依靠@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);
}
© www.soinside.com 2019 - 2024. All rights reserved.