SVN“禁止访问‘/svn/myproject’,但仅限于 Tortoise
SVN "access to '/svn/myproject' forbidden, but only with Tortoise
我正在尝试使用 Tortoise 通过虚拟机检查一个项目,但我得到
Unable to connect to a repository 'http://svn.mycompany/svn/myproject'
Access to /svn/myproject' forbidden
但这不是一个正确的问题,因为在我的物理计算机上,我可以使用同一个帐户(它每次都会弹出 Windows 标识弹出窗口)来完成它,没有问题(无论是用乌龟, eclipse svn, chrome, 等)。
我也可以在我的 VM 上毫无问题地访问 http://svn.mycompany/svn/ 并查看 "myproject" 文件夹。
更糟糕的是:在我的虚拟机上,我对使用 Internet Explorer 和 eclipse 的 subversion 的两个 URL 都没有任何问题。
我的物理计算机上的 Tortoise 没有配置任何代理,我的虚拟机也是如此。也许它使用 IE 的代理或类似的东西?
我看过其他问题,但其中大多数根本无法访问存储库。这也不是区分大小写的错误(因为没有大写字母)。
我试过重新安装它,使用乌龟自带的svn CLI,清理识别数据。任何人都知道我能做什么? (除了更改 SVN 客户端或使用 eclispe 的 svn 来检查所有内容)
简称:
我不得不深入寻找解决方案,但基本上,我的一些客户端与我的服务器不兼容,服务器告诉他们“403 禁止访问”(但没有客户端会准确地告诉我因为它是一个 html 页面...)。
我现在使用旧版本的 SVNKit:我的服务器是 1.8.8,我的工作客户端低于 1.9,而我的 none-working 客户端高于或等于 1.9。所以我不得不使用旧的 TortoiseSVN。
这肯定是服务器管理员的选择。
我还清理了所有凭据(即使我多次清理也没有任何效果...)
长答案:
这个问题也发生在另一个eclipse上(我必须为不同的项目使用不同的eclipse),它也有一个更新的svn客户端(颠覆性的,1.9中的SVNKit)并且有同样的问题(即"Access forbidden").使用任何浏览器或我的其他 eclipse 的 subversion (SVNKit 1.8.4) 都没有出现这个问题。
我使用 wireshark 查看为什么某些请求被拒绝而其他请求却没有。用户代理不同(仅由于版本)。从我所看到的使用 eclipse'SVN
- SVN 客户端尝试使用 http/xml 请求连接到服务器(也有 ACK 和其他,但这并不重要)。两种情况下的第一个请求都没有任何 authorization/credential (在请求的 http 部分)。
- 服务器响应没有凭据或缺少凭据。它实际上是框架数据部分中的自定义 html 答案,但它是
HTTP/1.1 401 Unauthorized
.
- 现在客户端发送相同的 HTTP 请求但带有凭据。
- 服务器回答
HTTP/1.1 200 OK
。
- 交流正常进行。
如果我使用较新的 SVN 版本,第一个客户端请求似乎没有什么不同(除了用户代理),但服务器的回答是 HTTP/1.1 403 Forbidden
。
(我只是看了一下数据部分,它不起作用,它是一个 html 页面,说明我的客户端可能不兼容......好吧,从乌龟。所以,"forbidden"不是因为错误的username/password或用户权限问题,而是版本问题...)
如果您遇到类似问题,我将发布长答案:尝试使用 Wireshark 从服务器读取 HTTP 答案的数据部分,因为您的 SVN 客户端可能不会(甚至 CLI 也不会) .
哦还有:如何清理 eclipse 的 SVN 凭据
我正在尝试使用 Tortoise 通过虚拟机检查一个项目,但我得到
Unable to connect to a repository 'http://svn.mycompany/svn/myproject' Access to /svn/myproject' forbidden
但这不是一个正确的问题,因为在我的物理计算机上,我可以使用同一个帐户(它每次都会弹出 Windows 标识弹出窗口)来完成它,没有问题(无论是用乌龟, eclipse svn, chrome, 等)。
我也可以在我的 VM 上毫无问题地访问 http://svn.mycompany/svn/ 并查看 "myproject" 文件夹。
更糟糕的是:在我的虚拟机上,我对使用 Internet Explorer 和 eclipse 的 subversion 的两个 URL 都没有任何问题。
我的物理计算机上的 Tortoise 没有配置任何代理,我的虚拟机也是如此。也许它使用 IE 的代理或类似的东西?
我看过其他问题,但其中大多数根本无法访问存储库。这也不是区分大小写的错误(因为没有大写字母)。
我试过重新安装它,使用乌龟自带的svn CLI,清理识别数据。任何人都知道我能做什么? (除了更改 SVN 客户端或使用 eclispe 的 svn 来检查所有内容)
简称:
我不得不深入寻找解决方案,但基本上,我的一些客户端与我的服务器不兼容,服务器告诉他们“403 禁止访问”(但没有客户端会准确地告诉我因为它是一个 html 页面...)。
我现在使用旧版本的 SVNKit:我的服务器是 1.8.8,我的工作客户端低于 1.9,而我的 none-working 客户端高于或等于 1.9。所以我不得不使用旧的 TortoiseSVN。 这肯定是服务器管理员的选择。
我还清理了所有凭据(即使我多次清理也没有任何效果...)
长答案:
这个问题也发生在另一个eclipse上(我必须为不同的项目使用不同的eclipse),它也有一个更新的svn客户端(颠覆性的,1.9中的SVNKit)并且有同样的问题(即"Access forbidden").使用任何浏览器或我的其他 eclipse 的 subversion (SVNKit 1.8.4) 都没有出现这个问题。
我使用 wireshark 查看为什么某些请求被拒绝而其他请求却没有。用户代理不同(仅由于版本)。从我所看到的使用 eclipse'SVN
- SVN 客户端尝试使用 http/xml 请求连接到服务器(也有 ACK 和其他,但这并不重要)。两种情况下的第一个请求都没有任何 authorization/credential (在请求的 http 部分)。
- 服务器响应没有凭据或缺少凭据。它实际上是框架数据部分中的自定义 html 答案,但它是
HTTP/1.1 401 Unauthorized
. - 现在客户端发送相同的 HTTP 请求但带有凭据。
- 服务器回答
HTTP/1.1 200 OK
。 - 交流正常进行。
如果我使用较新的 SVN 版本,第一个客户端请求似乎没有什么不同(除了用户代理),但服务器的回答是 HTTP/1.1 403 Forbidden
。
(我只是看了一下数据部分,它不起作用,它是一个 html 页面,说明我的客户端可能不兼容......好吧,从乌龟。所以,"forbidden"不是因为错误的username/password或用户权限问题,而是版本问题...)
如果您遇到类似问题,我将发布长答案:尝试使用 Wireshark 从服务器读取 HTTP 答案的数据部分,因为您的 SVN 客户端可能不会(甚至 CLI 也不会) .
哦还有:如何清理 eclipse 的 SVN 凭据