0

在 UserRest 类中设置用户 cookie 的方法

@Component
@Path("/user")
public class UserRest{
    .............

    @POST
    @Path("/login")
    @Produces(MediaType.APPLICATION_JSON)
    public Response login(@FormParam("username") String username,
    @FormParam("password") String password){
        return Response.ok(messageDto)
           cookie(new NewCookie("tokenId", "12345", "/medinetra/rest_service/", "192.168.1.2", "", 1800, true))
           .build();
   }

当我尝试在 UserRest 类中获取 cookie 时它成功

@GET
@Path("getcookie")
@Produces(MediaType.APPLICATION_JSON)
public Response getCookie(@CookieParam("token") String token){
    System.out.println(token); //=> write 123456
    return Response.status(200).entity("ok").build();
}

但是当我将 getCookie 方法放入 CustomerRest 时它会返回 null。

当我尝试其他方式设置 cookie 时,它​​也不起作用。

Response.ok(messageDto)
    .header("Set-Cookie", "token="+token+";Domain=192.168.1.2;Path=appname/rest_service;")
   .build();

我该如何处理,如何从其他班级获取 cookie。

4

1 回答 1

0

在第一个示例中,您没有指定路径。对于 HTTP cookie,如果您不指定路径,则默认为返回 cookie 的资源的路径。您应该使用NewCookie带有更多参数并提供路径的构造函数之一。

在第二个示例中,您正在命名您的 cookie tokenId,而不是token在第一个示例中。如果您的CustomerRest代码看起来像您的UserRest代码,那么您要求的是名为token而不是cookie tokenId

于 2013-06-17T12:53:36.953 回答