Jersey CORS配置允许来自服务器

时间:2017-06-26 12:35:36

标签: rest cookies spring-boot jersey kotlin

我有一个Jersey 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。在设置响应过滤器之前,我能够在每个响应中收到cookie。

感谢任何帮助。

0 个答案:

没有答案