【问题标题】:How do I create a new HttpSession in a RESTful webapp?如何在 RESTful webapp 中创建新的 HttpSession?
【发布时间】:2010-10-20 17:39:10
【问题描述】:

每当客户端调用特定 UI 时,我都需要创建一个 HttpSession(通过 cookie)。

假设:

  • 假设我不会担心任何类似 oAuth 的深度身份验证舞蹈。 JESSIONSID cookie 模拟目前不是问题。
  • 服务器是 tomcat,因此如果创建了新会话,则会向客户端发送一个 JSESSIONID cookie。

设计问题:

  1. 我正在努力解决如何设计 URI。什么是 REST 资源?我已经有了 /users/users/{someuserid}。我想使用 /auth/login 但在之前的一个 SO 问题中,一个cited article 说我们不应该在 url 中有动词。我注意到,即使是Google makes the same mistake,也可以使用 https://www.google.com/accounts/OAuthGetRequestToken。那么在您看来,/auth/login/johndoe(登录)和 /auth/logout/johndoe(注销)是不错的选择吗?

更新:

我改变了我的设计。我现在正在考虑使用 URI /session/johndoePUT 用于登录,DELETE 用于注销)。它仍然应该在 REST 精神的范围内?

【问题讨论】:

    标签: java tomcat rest restful-authentication


    【解决方案1】:

    会话在 REST 风格架构中不是无关紧要吗?

    http://www.prescod.net/rest/mistakes/

    【讨论】:

    • 就我而言,我真的需要一个会话。因为每个会话建立都会在我的后端消耗一个“相当大”的资源。
    • 如果你真的“需要”这个会话,那么我建议你停止尝试让你的应用程序 RESTful。您将一路逆流而上。从服务器中移除“应用程序状态”是 REST 的核心约束之一。
    • 我别无选择。 webapp 在一个 servlet 容器中。
    【解决方案2】:

    我正在创建一个可识别会话的 REST 端点。我已经标准化了:

    它运行良好。

    【讨论】:

      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 2019-04-23
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2016-12-07
      • 1970-01-01
      相关资源
      最近更新 更多