基于表单的登录,同时还应用REST原则

时间:2009-09-24 20:33:59

标签: java spring rest restful-authentication

我是一名Spring / JavaEE网络程序员,我开始研究未来Web应用程序的REST原理,但我无法弄清楚如何进行可用的登录。对于Web API来说,它是有意义的,但面向最终用户的Web应用程序呢?我已经研究过HTTP Basic / Digest Authentication,但这只会产生一个丑陋的对话框。有人有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这实际上取决于您如何处理基于表单的登录。

在J2EE规范中定义的方式,当他/她试图访问受保护资源时,登录页面仅显示给(但已经过身份验证的)用户;它本身不是(或不应该)可访问的。在那种情况下,登录页面不必受REST原则的约束,因为它本身不是“资源”。换句话说,工作流程是:

  1. 用户尝试获取REST网址,'/ products / 0332425'
  2. 他/她被重定向到'/ login',POST他的凭据,被重定向回(作为GET)到原始页面('/ products / 0332425')
  3. 后续尝试进入'/ login'会导致错误(403?)或重定向到“root”。
  4. 如果这对您不起作用,并且您需要在多个页面上提供您的登录表单,请将其视为页面及其提交的一部分,就像处理任何其他POST一样。