Safari 4上的QuickTime HTTP基本身份验证

时间:2009-10-19 19:18:11

标签: java macos quicktime basic-authentication

我使用的是运行Safari 4.0.3的Mac OS X Leopard 10.5.8。我的跨平台Java应用程序具有嵌入式本机Web浏览器,其中包含自己的内部Web服务器。每当浏览器尝试提供需要quicktime(mov,mp4,m4v等)的文件时,我都会获得用户名/密码凭据对话框。我可以看到每个请求通过并进行身份验证(至少html文件已经过身份验证)...然后我看到了mp4的请求,例如它永远不会被验证。它几乎就像QuickTime永远不会将凭证交给它并试图自己进行身份验证。

我自己内部传递这些凭据,其他所有文件类型都可以使用基本身份验证。我甚至可以在Windows上使用QuickTime 7.6.4和相同的文件运行应用程序,它们按预期播放(Windows在这种情况下运行IE8作为嵌入式浏览器)。

QuickTime 7.6.4和Safari 4上的基本身份验证是否存在已知问题?我在网上搜索了一点没有运气。

1 个答案:

答案 0 :(得分:0)

这不是Safari 4的问题,但是QuickTime 7.6.4存在问题。添加到此版本中的“安全”措施会导致QuickTime本身进行身份验证。虽然从浏览器到我的服务器的html文件和mp4的请求对我提供的凭据感到满意......然后由QuickTime生成另一个凭据请求。我无法填写这些凭据,认证监听器是浏览器的一部分,而事件是从QuickTime触发的。

我在分析请求标头时发现了第二组凭据。我发现当QuickTime在我的应用程序中发出请求时,GET标头中文件的路径是相对路径,因为Web服务器知道基本路径。当使用“文件”菜单中的“打开URL”选项从QuickTime发出相同请求时,该文件的整个绝对路径位于GET标头中。然后,我可以检查此GET标头,如果它有一个绝对路径,则此请求来自外部源并需要凭据,否则它来自我的应用程序,无需基本身份验证。