猿问

当请求包含多个同名cookie时,SpringMVC中@CookieValue的行为是什么?

使用 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 注意到这种行为,所以不确定这是否巧合。


富国沪深
浏览 71回答 1
1回答

幕布斯6054654

它是具有所需名称的第一个 cookie 将用于检索值。在 Spring Boot 2.0.3(spring-webmvc 5.0.7.RELEASE)中:从 开始ServletCookieValueMethodArgumentResolver#resolveName,它调用WebUtils#getCookie以检索给定名称的 cookie。同时,JavadocWebUtils#getCookie指出:检索具有给定名称的第一个 cookie。请注意,多个 cookie 可以具有相同的名称但不同的路径或域。
随时随地看视频慕课网APP

相关分类

Java
我要回答