1

我正在使用 TestRestTemplate 的 getForEntity。但是,它不会返回我在 WebSecurityConfig 类中配置的 TLS、HSTS 或 HPKP 标头。然而,它确实适用于现实世界的环境。为什么在测试期间不调用安全过滤器链?

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SecurityTest {

@Autowired
private TestRestTemplate restTemplate;

@LocalServerPort
private String portNumber;

@Test
public void testHeaders() {

    ResponseEntity<?> response = this.restTemplate.getForEntity(
            "/path/does/not/exist", Object.class);

    HttpHeaders responseHeaders = response.getHeaders();
    Set<Map.Entry<String, List<String>>> headers = responseHeaders.entrySet();

    headers.stream().forEach((entry) -> {
       assert entry.getKey().equals(SOMETHING_VALUABLE);
    });
}

}

4

0 回答 0