在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。
答案 0 :(得分:0)
在第一个示例中,您没有指定路径。如果您没有指定路径,则使用HTTP cookie,它默认为返回cookie的资源的路径。您应该使用其中一个NewCookie
构造函数来获取更多参数并提供路径。
在第二个示例中,您将命名您的Cookie tokenId
而不是token
,如第一个示例所示。如果您的CustomerRest
代码看起来像UserRest
代码,那么您要求的是名为token
而不是tokenId
的Cookie。