如何自定义“403 Forbidden”消息?仅对于此消息,我想添加其他信息,例如“403 Forbidden (you have no rights to [URL to repository])”。怎么做?我想保存与任何 svn 工具的兼容性,例如本地 svn 客户端、乌龟、java 程序员环境等。
- 编辑 -
我的环境:
操作系统:Linux Debian
SVN:1.8.8
访问协议:Apache 和 DAV 的 HTTP(s) svn
auth protolol 配置:authzsvnaccess
所有的作品都像我想要的一样,除了禁止的消息。这会误导用户。他们认为问题在于服务,但真正的问题在于访问权限。
您可以使用 Apache ( http://httpd.apache.org/docs/current/custom-error.html )自定义错误文本/文档,但这对您没有帮助。
错误消息嵌入到客户端源 (
subversion/libsvn_ra_serf/util.c
) 中:不看,我怀疑其他客户端(SmartSVN,Tortoise)使用相同或非常相似的 HTTP 客户端库,所以你会遇到同样的问题:当客户端时,没有将自定义错误消息从服务器路由到客户端的工具被密码失败或 authz 拒绝。
但是,如果这是您真正需要的东西,那么您可以在
pre-commit
钩子中对必要的路径进行特殊处理,因为当钩子脚本以非零状态存在时,内容stdout
会反馈给用户,您可以让它说你喜欢的任何东西。问题是必须首先对请求进行身份验证,因此这样的解决方案可能会破坏您的权限模型,除非它是针对非常具体的单一案例。(您始终可以自定义客户端,但我怀疑这比您愿意为此更进一步)