如何使用Play Framework 2.0将请求中的cookie从Web服务中获取?

时间:2012-10-23 00:40:15

标签: web-services authentication cookies playframework playframework-2.0

如何从身份验证请求中获取使用会话的Web服务的cookie? 我无法更改Web服务实现。

public static Result authenticate(){
    Form<Login> f = form(Login.class).bind(request().body().asJson());

    Promise<WS.Response> result = WS.url("http://site/login")
        .post("{\"login\":\"login\", \"password\":\"password\"}");

    return async(result.map(
            new Function<WS.Response, Result>() {
                public Result apply(WS.Response response) throws Throwable {
                    if(response.getStatus() == OK){
                        JsonNode jn = response.asJson();
                        session("username", jn.get("login").toString());

                        // how can I get cookies from webservice?

                        return ok(jn);
                    }else{
                        return internalServerError();
                    }
                }
            }
        )
    );
}

1 个答案:

答案 0 :(得分:1)

我找到了答案here。第一个Web服务响应具有Set-Cookie标头。

response.getHeader("Set-Cookie");