我正在尝试在我的 REST API 中对登录和安全性进行单元测试,因此我尝试尽可能接近地模拟现实生活中的请求序列。
我的第一个要求是:
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();
(请参阅pastebin上的完整课程)。
我尝试在此处获取 cookie,以便稍后使用收到的 CSRF 令牌登录,但cookies
数组为空!
但是,如果我运行我的应用程序并调用
curl -i http://localhost:8080/login/csrf
我确实取回了 Set-Cookie 标头,以后可以使用该 cookie(和 CSRF 令牌)进行身份验证。
所以问题是:如何让 MockMvc 向我返回一个 cookie?