REST API未经身份验证的请求基于User-Agent的异常

时间:2010-04-27 20:54:35

标签: java authentication browser rest login

我正在开发支持两​​种身份验证协议的REST API:

  1. 登录表单身份验证 - 适用于基于浏览器的客户端。
  2. 简单基本身份验证 - 适用于非浏览器客户端。
  3. 我开发了一个流程,其中未经身份验证的请求被重定向到“登录表单”,问题是这对于非borwser客户端来说是一种不受欢迎的行为!

    我想根据“User-Agent”决定解决这个问题:浏览器将被重定向到“登录表单”,非浏览器客户端将获得标准401:基本身份验证。

    :一种。您对此解决方案有何看法?
    B中。 Java中是否有标准的方法来检查请求是否来自浏览器,还是我需要自己开发这种机制?

    提前致谢!

1 个答案:

答案 0 :(得分:1)

由于您可以完全控制客户端,因此您可以通过许多其他方法执行此操作而无需检查用户代理,

  1. 使用其他URL进行客户端登录。我们的客户端没有返回HTML,所以我们使用不同的端点。

  2. 在URL中传递一个特殊参数,如client_version。

  3. 如果您坚持要检查用户代理,请使用特殊字符串,以便其他所有内容都是浏览器。