HttpUnit中的领域挑战

时间:2011-05-16 23:19:32

标签: http-unit

HttpUnit API for webclient表示“只有在针对指定领域提出质疑时才会发送授权标头”。在这种情况下,挑战意味着什么? HttpUnit如何识别挑战?

2 个答案:

答案 0 :(得分:3)

这指的是HTTP身份验证的工作方式:

访问受保护的URL时(第一次,请求中不包含凭据),服务器将发回状态代码为401 UnauthorizedWWW-Authenticate标头集的响应像Basic realm="My Realm"这样的东西。这表示给定URL需要基本身份验证,并且域名为“My Realm”。这是一个挑战 - 服务器通知用户代理它尝试访问的URL需要身份验证,它应该发回用户凭据。用户代理通常会提示用户输入凭据,然后重试请求,这次Authorization标头设置为Basic rXflcjMwYXxz,其中第二部分是Base64编码的用户名和密码对。

如果你链接到HttpUnit方法,你会发现它需要一个领域,用户名和密码。我想,当访问一个URL时,如果它从服务器返回401(挑战),它会将你传递它的领域与响应中的领域进行比较;如果匹配,它将尝试使用提供的用户名和密码进行身份验证。

参考文献:

答案 1 :(得分:2)

当服务器响应401错误时,HttpUnit会抛出AuthorizationRequiredException。我们可以使用异常的getParameter(“realm”)获取领域,并使用此领域名称再次发送请求。