我正在使用 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);
});
}
}