Jersey CORS配置允许来自服务器的响应cookie
我有一个泽西岛REST接口,我希望在每个请求的响应中发送cookie,但在任何响应中都不会出现cookie。
我有一种感觉,这是一个CORS的问题,我不知道什么CORSResponseFilter配置我需要允许设置cookie并成功发送响应。
我的项目是用Kotlin下的SpringBoot构建的。
响应码:
@POST fun put(): Response { val cookie = NewCookie(Cookie("RESERVATION", "TEST"), "Session", 60 * 60, false) return ok() .cookie(cookie) .entity(Result("OK", "Success")) .build() }
过滤代码:
open class CORSResponseFilter : ContainerResponseFilter { override fun filter(req: ContainerRequestContext?, res: ContainerResponseContext?) { res?.headers?.add("Access-Control-Allow-Origin", "*") res?.headers?.add("Access-Control-Allow-Methods", "POST, GET") res?.headers?.add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization") res?.headers?.add("Access-Control-Expose-Headers", "Set-Cookie") res?.headers?.add("Access-Control-Allow-Credentials", "true") } }
请求是成功的,并按照预期发送,但没有任何cookie。 在设置响应filter之前,我能够在每个响应中接收cookie。
任何帮助表示赞赏。
- 动态dsl使用kotlin with content assist
- SpringBoot ArrayIndexOutOfBoundsException MethodParameter.getGenericParameterType