问题标签 [www-authenticate]
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.
php - PHP www-authenticate 基本弹出循环问题
两天以来,我尝试在一个简单的示例代码中找到我的问题:
Auth Popup 可以正常打开,我发送用户和密码。但是弹出窗口一次又一次地打开。如果我取消弹出窗口,401 消息将正确显示。
我试图用 .htaccess 填充
但这没有任何改变。感谢您提出解决此问题的任何想法!
java - 有没有办法解决 RatpackPac4j#requireAuth 不设置 WWW-Authenticate 标头?
在 Ratpack (1.5.x) 应用程序的上下文中测试 Pac4j (2.x) 身份验证时,我发现当我使用此处理程序时:
...未经授权的请求以 401 状态被正确拒绝,并且RFC-7235声明WWW-Authenticate
应添加标头,但事实并非如此。
我在此处的 RatpackPac4j 跟踪器上提出了一个问题,但由于 Pac4j v3 正确地实现了这一点,它被关闭为(我推断)“无法修复”。而且 RatpackPac4j 还没有升级到与 Pac4j v3 一起工作。
那么:是否可以插入一些对所有响应进行后处理的东西,例如,根据响应有条件地添加一个标头?
除了 - 我在我的 gradle 配置中使用以下版本:
java - 给定一个 Ratpack RequestFixture 测试,我怎样才能让夹具调用 Request#beforeSend?
这个问题是在 Ratpack RequestFixture
Spock 测试的上下文中,用于通过 进行身份验证的 Ratpack 链RatpackPac4j#requireAuth
,并对缺少的WWW-Authenticate
标头采用解决方法(如本问题的答案中所述)
我遇到的问题是,我发现从(的包装器)#beforeSend
获得响应时似乎没有调用它。解决方法取决于此工作,因此我无法对其进行测试。有没有办法在返回的响应上调用?GroovyRequestFixture#handle
RequestFixture#handle
#beforeSend
HandlingResult
例如,此测试用例会因断言存在WWW-Authenticate
标头而失败,即使改编自此的代码在实际应用程序中调用时正确插入了标头。被测链是testChain
,跳到最后失败的断言:
jquery - 当通过 AJAX 重定向收到 401 时,有没有办法在 Chrome 中删除 WWW-Authenticate?
我正在使用 AJAX 调用 IdP 服务,withCredentials = true。它返回带有重定向到另一个 URL 的表单的响应消息。仅在 Google chrome 中,它会提示输入我假设收到 401 的凭据,但我希望它失败,而不是提示输入凭据。
我在 Edge 中尝试了完全相同的代码,但它确实以 401 状态失败。没有凭据提示。此外,一些 stackoverflow 似乎暗示 WWW-Authenticate 需要被删除或黑客攻击,但这似乎破坏了已经就位的内置凭证协商 (OOTB)。
以下是两种浏览器(Edge 和 Chrome)中使用的片段
预期:在 Chrome 中,不应显示凭据提示。
实际:Chrome 显示凭据提示。
oauth - 应该对 WWW-Authenticate 领域参数进行编码吗?
在为 OAuth/ OAuth1a构建 WWW-Authenticate 标头值时,它要求对参数进行百分比编码。规范和实现对于realm
参数是否应该进行百分比编码是模棱两可的。
OAuth 协议参数通过以下方式在授权标头中发送:
- 参数名称和值按照参数编码进行编码。
- 对于每个参数,名称后面紧跟一个 '=' 字符(ASCII 码 61)、一个 '"' 字符(ASCII 码 34)、参数值(可以为空)和另一个 '"' 字符(ASCII 码34)。
- 根据 [RFC2617],参数由逗号字符(ASCII 代码 44)和可选线性空格分隔。
- 根据 [RFC2617] 第 1.2 节添加和解释 OPTIONAL 领域参数。
例如:
如果这些步骤是按顺序执行的,那么似乎只有 OAuth 特定参数是要进行 url 编码的。
如果不打算按顺序执行这些步骤,则该realm
参数可能包含在步骤 1 中。但是,OAuth1a规范中的 WWW-Authenticate 标头示例显示了realm="http://sp.example.com/"
不是对冒号或斜杠进行百分比编码的领域。
更令人困惑的是,这似乎因实施而异。许多 OAuth 实现对参数没有特殊处理,只是对所有参数进行百分比编码,但其他 OAuth 实现对realm
参数进行特殊处理并将其从百分比编码中排除。
realm
将参数添加到 WWW-Authenticate 标头的正确行为是什么?
angular - 对于失败的基本身份验证方案,如何关闭浏览器自动打开的登录弹出窗口?
我正在从我的 Angular 6 应用程序向服务器发出 HTTP 发布请求以获取身份验证令牌。服务器在发布令牌之前使用基本身份验证方案来验证用户名和密码。401 unauthorized error
如果登录不正确username
,服务器会响应。password
与 一起401 error
,服务器返回www-authenticate: Basic realm={some message}
标头。浏览器会自动弹出一个登录对话框来输入username
和password
登录失败。我不想在服务器中进行任何更改,而是想在我的 Angular 应用程序中处理这个弹出窗口。
我希望在登录失败时禁用此弹出窗口,而是想在我的角度应用程序本身中处理错误。
那可能吗?
如果是,如何?
browser - 如何使用浏览器发送授权标头
我已经实现了一个使用基本身份验证(使用 spring security)的 web 服务器。
我在访问 URL 时禁用了默认身份验证入口点(而不是使用 www-authentication 标头响应 401,它只返回 401),目的是防止浏览器显示身份验证弹出窗口。
我可以使用 javascript 代码和 curl 等命令行工具连接到服务器,但是当我使用浏览器(chrome 和 firefox)对其进行测试时,它们只是不发送标头。
curl -v -u user:password localhost:8080/user
GET /user HTTP/1.1
主机:localhost:8080
授权:基本 dXNlcjpwYXNzd29yZA==
用户代理:curl/7.58.0
接受:/
Chrome:版本 71.0.3578.98(官方构建)(64 位)
http://user:password@localhost:8080/user
GET /user HTTP/1.1
主机:localhost:8080
连接:keep-alive
Upgrade-Insecure-Requests:1
用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/ 71.0.3578.98 Safari/537.36
DNT: 1
接受:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng, / ;q=0.8
Accept-Encoding: gzip, deflate, br 接受语言:en-AU,en;q=0.9,fr-FR;q=0.8,fr;q=0.7,en-GB;q=0.6,en-US;q=0.5
为什么浏览器不发送身份验证标头。
http - 在 www-authenticate 标头中指定多个身份验证方案
RFC 7235指出此标头提供两种身份验证机制:
我在解析这个语法时遇到问题,而 RFC 没有帮助,因为它没有描述它。如果应用程序应该尝试这样做,我不能只尝试用逗号分隔,因为它既用于分隔身份验证机制及其参数。
如果我要使用正则表达式找到每个身份验证机制的开始,我的理解是否正确\w+ realm=
?
apache - 反向代理以删除摘要身份验证
我已经在寻找解决方案的日子,但我找不到任何东西。我有一些 IP 摄像机(大华)没有未经授权的、可以说是公开查看的选项。我现在正在寻找可以执行以下操作的代理服务器:
- 连接到 IP 摄像机流 (MJPEG)
- 如果相机返回 401,则代理必须使用保存的用户名和密码登录
- 传输 IP 摄像机流
我可以通过添加 Authorization 标头使用 nginx 来完成此操作,但这是困难的部分,只有当相机使用基本身份验证时。
但是,某些模型仅支持非静态的摘要式身份验证。
有人可以指点我一些可以做到这一点的软件或 nginx/apache 插件吗?我正在寻找类似https://github.com/jantman/python-amcrest-noauth-proxy但用 C 编写的东西,以便我可以在 OpenWRT 嵌入式设备上运行它。
亲切的问候,大安