Warum enthält das Ergebnis von Spring MockMvc kein Cookie?
Ich versuche, die Anmeldung und die Sicherheit in meiner REST-API einem Komponententest zu unterziehen. Daher versuche ich, echte Anforderungssequenzen so genau wie möglich nachzuspielen.
Meine erste Anfrage wäre:
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).
addFilters(springSecurityFilterChain).build();
this.mapper = new ObjectMapper();
....
MvcResult result=mockMvc.perform(get("/login/csrf")).andExpect(status().is(200)).andReturn();
Cookie[] cookies = result.getResponse().getCookies();
(Siehe ganze Klasse auf pastebin).
Ich versuche, das Cookie hier abzurufen, um mich später mit dem empfangenen CSRF-Token anmelden zu können, aber dascookies
array ist leer!
Allerdings, wenn ich meine Anwendung ausführen und @ aufruf
curl -i http://localhost:8080/login/csrf
Ich erhalte einen Set-Cookie-Header zurück und kann diesen Cookie (und den CSRF-Token) später zur Authentifizierung verwenden.
Die Frage ist also: Wie bringe ich MockMvc dazu, ein Cookie an mich zurückzugeben?