首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用JAX-RS设置和检查cookies?

如何使用JAX-RS设置和检查cookies?
EN

Stack Overflow用户
提问于 2015-01-18 05:05:06
回答 1查看 28.1K关注 0票数 27

我是一个noobie与RESTful应用程序接口,我正在尝试建立一个登录服务,其中我提供了一个电子邮件和密码,如果验证是成功的-以存储一个饼干。此外,如何检查cookie(如果已存储)?

如何才能做到这一点?

代码语言:javascript
复制
@Path("/login")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes({MediaType.APPLICATION_FORM_URLENCODED, MediaType.APPLICATION_JSON})
public Response Login(final String i_LoginDetails) throws JSONException {
    final JSONObject obj = new JSONObject(i_LoginDetails);
    try {
        if (isValidUser(obj.getString("email"), obj.getString("password"))) {
            // Set a cookie
        } else {
            // return error invalid-credentials message
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return Response.ok("TEST").build();
}

如何检查cookie(如果设置了cookie)?

EN

回答 1

Stack Overflow用户

发布于 2015-01-18 05:29:24

您可以执行以下操作:

存储新cookie的

@GET @Path("/login") @Produces(MediaType.TEXT_PLAIN) public Response login() { NewCookie cookie = new NewCookie("name","123");return Response.ok("OK").cookie( cookie ).build();}

  • 获取cookie (javax.ws.rs.core.Cookie):

@GET @Path("/foo") @Produces(MediaType.TEXT_PLAIN)公共响应foo(@CookieParam("name") Cookie cookie) { if (cookie == null) { return ==} else { return Response.ok(cookie.getValue()).build();}}

但是,您可能只需要该值:

@GET @Path("/foo") @Produces(MediaType.TEXT_PLAIN)公共响应foo(@CookieParam("name")字符串值){ System.out.println ( value );if (value == null) { return MediaType.TEXT_PLAIN} else { return Response.ok(value).build();} }

顺便说一句,您可能希望尝试以下代码:

代码语言:javascript
复制
@GET
@Path("/logout")
@Produces(MediaType.TEXT_PLAIN)
public Response logout(@CookieParam("name") Cookie cookie) {
    if (cookie != null) {
        NewCookie newCookie = new NewCookie(cookie, null, 0, false);
        return Response.ok("OK").cookie(newCookie).build();
    }
    return Response.ok("OK - No session").build();
}

这将删除浏览器中的cookie。行为取决于JAX-RS的实现。在RESTEasy (JBoss AS7.0)和谷歌浏览器上运行良好。

票数 49
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28004298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档