使用 cookie 处理 REST 请求时,我使用@CookieValue来检索 cookie 的值,例如:@GetMapping("/path")public ResponseEntity doRequest(@CookieValue(value = "cookie_name", required = false) final String cookieValue) {问题是,我们可以向该端点发送多个具有相同名称的 cookie,例如:curl -v http://localhost/path --cookie "cookie_name=abc; cookie_name=def" cookieValue会得到什么价值?尝试使用 Spring boot 2.0.3,该值似乎是abc,第一个值。但找不到 doc 注意到这种行为,所以不确定这是否巧合。
1 回答
幕布斯6054654
TA贡献1876条经验 获得超7个赞
它是具有所需名称的第一个 cookie 将用于检索值。
在 Spring Boot 2.0.3(spring-webmvc 5.0.7.RELEASE)中:
从 开始ServletCookieValueMethodArgumentResolver#resolveName
,它调用WebUtils#getCookie
以检索给定名称的 cookie。
同时,JavadocWebUtils#getCookie
指出:
检索具有给定名称的第一个 cookie。请注意,多个 cookie 可以具有相同的名称但不同的路径或域。
添加回答
举报
0/150
提交
取消