如何让我的JAX-RS网络服务记住我的登录?

时间:2014-04-12 02:58:30

标签: java rest jax-rs stateful

我使用JAX-RS在Java中创建了一个非常简单的REST Web服务。并让客户端对该Web服务进行Ajax调用以登录并获取登录信息。

JAX-RS代码

@Path("/netsuite")
public class myRESTWebService{
   @GET
   @Path("/login/{userName}")
   public String login(@PathParam("userName") String userName){
      //here I have to save that userName in some session so that I can use it in below function
   }


   @GET
   @Path("/getUserName")
   public String getUserName(){
      //here I have to return the above username
   }  
}

我知道REST Web服务是无状态的,我怎样才能使它成为有状态的。我整天试着谷歌搜索,对我帮助不大。

如何让它成为有状态的?

1 个答案:

答案 0 :(得分:2)

您可以访问HttpSession并存储用户名,如下所示:

@GET
@Path("/login/{userName}")
public String login(@PathParam("userName") String userName, @Context HttpServletRequest servletRequest) {
    HttpSession session = request.getSession();
    session.setAttribute("userName", userName);
}

但我强烈建议您重新考虑为什么在无状态应用程序中需要状态并查看Java EE Security Concepts

不相关:Java中的类始终以大写字母开头。