Sto provando a eseguire il test di accesso e sicurezza nella mia API REST, quindi cerco di simulare le sequenze di richieste in tempo reale il più vicino possibile.Perché il risultato di Spring MockMvc non contiene un cookie?
La mia prima richiesta sarebbe:
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();
(Visualizza intera classe pastebin).
Cerco di ottenere qui il cookie per poter accedere con il token CSRF ricevuto in seguito, ma l'array cookies
è vuoto!
Tuttavia, se corro la mia domanda e chiamo
curl -i http://localhost:8080/login/csrf
faccio tornare un'intestazione Set-Cookie e posso usare il cookie (e il token CSRF) in seguito per l'autenticazione.
Quindi la domanda è: come faccio a ottenere da MockMvc un cookie per me?
Come hai fatto a configurare il 'mockMvc'? –
@SotiriosDelimanolis Ho modificato il mio codice nella domanda per dimostrarlo. Quando avrò tempo, inserirò i bit rilevanti della classe di test qui o un pastebin. –
Le parti rilevanti della mia classe di test sono su pastebin: http://pastebin.com/LiNeRFT0 –