球衣安全和会话管理
有没有办法在泽西岛以编程方式获得会话管理或安全性,例如Web应用程序会话管理?或者,事务、会话和安全性是否全部由部署 Jersey 应用程序的容器处理?
有没有办法在泽西岛以编程方式获得会话管理或安全性,例如Web应用程序会话管理?或者,事务、会话和安全性是否全部由部署 Jersey 应用程序的容器处理?
会话管理是部署 Jersey 的容器的权限。在大多数生产情况下,它将部署在执行会话管理的容器中。
下面的代码是一个简单的 Jersey 资源示例,该资源获取会话对象并将值存储在会话中,并在后续调用中检索这些值。
@Path("/helloworld")
public class HelloWorld {
@GET
@Produces("text/plain")
public String hello(@Context HttpServletRequest req) {
HttpSession session= req.getSession(true);
Object foo = session.getAttribute("foo");
if (foo!=null) {
System.out.println(foo.toString());
} else {
foo = "bar";
session.setAttribute("foo", "bar");
}
return foo.toString();
}
}
我认为会话是我们不应该在RESTful应用程序中使用的东西......
叶戈尔是对的。我们不应该永远不要像传统的Web应用程序那样在服务器端维护状态。如果你想构建一个解耦的面向SOA的应用程序,你不需要为REST Web服务使用任何API/框架。如果你需要或想要在服务器端维护全局客户端-服务器状态,你正在隐式构建我们可以描述为面向SOA的[web]应用程序的东西,但使用泽西岛就像一个[web]开发框架。无意中,您正在扭曲Web服务(REST或其他)的性质。你可以按照第一个答案中建议的方式去做,但你不能。最终的结果不是 Web 服务,只是使用 Web 服务工具构建的常规应用程序。
-_o