问题标签 [http-digest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2673 浏览

php - 获取 cUrl 以抢先发送授权标头以在 PHP 中进行 DIGEST 身份验证

我们有一个 PHP 页面(实际上是一个 WordPress 插件),它通过 DIGEST 身份验证调用 REST API。curl 句柄是基于每个请求创建的,给定授权凭据并成功进行身份验证。

问题:

在后台,Curl 发送了两个请求。第一个以 401 和挑战失败,第二个包含 Authorization 标头并成功(200)

在随后的 API 调用中,cUrl 继续发送两个请求。这似乎效率低下,导致操作持续时间增加了 2 倍的网络延迟。

我们如何使 cURL “先发制人地验证”(例如)未来的请求?

Curl Multi 有这个功能吗?

0 投票
1 回答
791 浏览

android - getInputStream 在 Android 的 Http Digest 身份验证期间给出 FileNotFoundException

我正在尝试向具有 HTTP Digest 身份验证的 URL 发送 POST 请求。

我用这个来做文摘。我可以理解,在这个机制中有两个步骤。在第一步中,客户端发送请求,服务器以质询响应。在第二步中,客户端将挑战合并到请求中并从服务器获取响应。使用上面提到的类,那件事可以正常工作。

我不得不将 HttpConnection 更改为 HttpURLConnection 以使其在 Android 中工作。

现在,我有了 DataConnection 类,它使用 Digest Auth 类来完成工作。课程如下:

在这里,我在方法调用FileNotFoundException期间获取 URL 。getInputStream()我已经多次验证我请求的 URL 和 Digest Auth 的凭据是 100% 正确的。

请帮忙。

问候。

0 投票
1 回答
320 浏览

android - android中的Restlet HTTP_DIGEST授权

通过 Android 上的 Restlet 框架获得 HTTP_DIGEST 授权的以下问题。

05-20 18:39:14.623:W/System.err(4584):Restlet 引擎不支持挑战方案 HTTP_DIGEST。05-20 18:39:17.498: W/System.err(4584): 找不到任何支持 HTTP_Digest 质询方案的助手。

在客户端执行并给出上述错误的部分代码

通过浏览器检查了该资源,授权似乎没问题。

有什么建议吗?:)

谷歌没有提出任何可用的东西。

干杯!

0 投票
1 回答
712 浏览

spring - DigestAuthenticationFilter 与数据库用户,可能吗?

我的 http-digest 的 Spring-Security 实现: 代码:

我正在尝试对其进行自定义以从数据库中获取用户数据。我试图从接口类 UserDetailsS​​ervice 访问。代码:

这不起作用,因为实现安全时的标签:用户服务,没有类属性。

任何想法?,如何访问用户数据库?

0 投票
4 回答
19998 浏览

node.js - 如何使用 Node.JS 请求 HTTP Digest 身份验证?

我必须用 Node.JS 为 API 文档编写一些代码,但最近几天我尝试了我在网上找到的所有解决方案(当然包括 Stack),但没有成功......

我的 API 使用 HTTP Digest Auth,这就是问题所在,我能够连接,这没什么大不了的,但每次我得到相同的回报:

您可以在下面显示我的基本代码而无需身份验证!因为在我做了所有尝试之后我不知道我能做什么:

我最后一次尝试是使用这个模块https://npmjs.org/package/request但每次我得到 401 时他都不会工作!

有关更多信息,我能够使用 Ruby、Python、php 和 Java 从我的 API 连接并获取我需要的信息,因此我确信我的 API 运行良好并且我传递的信息是正确的。我使用 Node v0.10.11 的最后一个稳定版!

如果有人可以帮助我或有最新的解决方案,我会很高兴。

编辑:我将使用Mickael/request模块添加一些关于我的测试的详细信息

第一次尝试 :

第二次尝试:

但是返回还是一样的 401

0 投票
1 回答
2848 浏览

angularjs - AngularJS 和摘要 HTTP 身份验证

我正在尝试以角度实现摘要身份验证算法。但是,缺乏关于角度将发送的请求的知识使我无法理解该目标。我的方法是通过

路线。但是我提供的功能

显然没有提供有关即将到来的请求的任何知识。由于我根本不了解请求 URI(但尤其是方法,例如 PUT、GET 等),因此不可能计算出正确的摘要哈希。

有人知道 transformRequest 函数如何获取 URI 和请求的目标方法吗?

0 投票
0 回答
1891 浏览

apache - 对父使用“AuthType Basic”的给定子目录使用“AuthType Digest”?

我正在使用 Apache 2.2,并且我有一个受 HTTP 身份验证保护的应用程序(Zend Framework 1):

它工作得很好。现在我需要使用URL http://example.com/apiAuthType Digest(因为我们使用的 API 模块适用于基于摘要的身份验证)。

如果没有 API 客户端上方的身份验证代码,则可以正常连接。有了它,我得到“需要 401 授权”,Apache 日志显示“客户端使用了错误的身份验证方案”。

我试过了:

但是现在我在日志中有“摘要:客户端使用了错误的身份验证方案”(注意“摘要:”前缀)。

是否可以使两种 HTTP 身份验证类型并排工作(但是在这种情况下它会级联更多)?

0 投票
1 回答
1387 浏览

http-authentication - 使用 nginx 进行基本身份验证,然后在 PHP 中进行摘要身份验证失败

我正在开发一个新应用程序,并决定使用基本身份验证保护云登台服务器。

我正在使用 nginx,所以配置如下所示:

我的 MVC 应用程序还有一个“管理”模块,它使用 HTTP Digest 进行保护:

所以,问题是基于 PHP 的 Digest 身份验证不起作用,因为到那时 $_SERVER['HTTP_AUTHORIZATION'] 已经被基本身份验证的结果所占用:$_SERVER['HTTP_AUTHORIZATION'] = "Basic S1aGUzpuZXzzdXRl"。

有没有办法分离基本认证和摘要认证的结果?

谢谢!

0 投票
1 回答
2414 浏览

c++ - 如何获得正确的摘要身份验证

我尝试编写一个 C++ 应用程序,我必须进行 HTTP Digest Authentication。问题主要不在于 C++,而在于没有建立连接这一事实。我尝试访问的网站如下: httpbin.org/digest-auth/auth/user/passwd 。

考虑以下服务器对简单的响应GET /digest-auth/auth/user/passwd

HTTP/1.1 401 UNAUTHORIZED Access-Control-Allow-Credentials: true Access-Control-Allow-Origin: * Content-Type: text/html; charset=utf-8 Date: Mon, 08 Sep 2014 15:10:09 GMT Server: gunicorn/18.0 Set-Cookie: fake=fake_value Www-Authenticate: Digest realm="me@kennethreitz.com", nonce="2a932bfb1f9a748a7b5ee590d0cf99e0", qop=auth, opaque="2d09668631b42bff8375523e7b27e45e" Content-Length: 0 Connection: keep-alive

A1然后被计算为user:me@kennethreitz.com:passwd并被散列4de666b60f91e2444f549243bed5fa4b,我将其称为 HA1。 A2被计算为GET:/digest-auth/auth/user/passwd和散列b44272ea65ee4af7fb26c5dba58f6863,我将其称为 HA2。

有了这些信息,响应计算为HA1:nonce:1:ac3yyj:auth:HA2,其中HA1HA2是我们刚刚计算的值,并且从上面的服务器响应中获取随机数,总共是:4de666b60f91e2444f549243bed5fa4b:2a932bfb1f9a748a7b5ee590d0cf99e0:1:ac3yyj:auth:b44272ea65ee4af7fb26c5dba58f6863。的哈希是55f292e183ead0810528bb2a13b98e00.

结合所有这些信息应该足以使用摘要身份验证建立 http 连接。但是,以下请求被服务器拒绝并以另一个HTTP/1.1 401.

GET /digest-auth/auth/user/passwd HTTP/1.1 Host: httpbin.org Authorization: Digest username="user", realm="me@kennethreitz.com",nonce="2a932bfb1f9a748a7b5ee590d0cf99e0",uri="/digest-auth/auth/user/passwd",qop=auth,nc=1,cnonce="ac3yyj",response="55f292e183ead0810528bb2a13b98e00",opaque="2d09668631b42bff8375523e7b27e45e"

请注意,格式不显示请求的结构。从 Authorization 到 opaque 的块实际上是一行。

随意重新进行 md5 计算 - 但我已经手动重做计算并获得与我的程序相同的哈希值。我使用该工具(http://md5-hash-online.waraxe.us/)进行手动计算。

我是否在这里遗漏了一些明显的东西,可能在某种程度上误解了标准?为什么我无法获得授权?

0 投票
0 回答
230 浏览

android - Android 上的 Http 摘要身份验证失败并出现 401

我正在尝试从 android 客户端进行 http 摘要身份验证。这是一条连接并成功完成摘要的卷曲线。

这是我的 android 客户端中返回 401 的一次尝试。

这是客户端的第二次尝试,也返回 401。

谁能看到我缺少什么才能使身份验证正常工作?我们知道这不是服务器问题,因为卷曲线效果很好。