1

似乎除了在我的 WAMP 服务器中抛出的任何东西都被 Autobahn 捕获并发送到客户端。这有两个问题:a) 如果服务器出现问题,则需要将其登录到服务器上,以便团队修复;b) 这些异常可能非常具有启发性(尤其是来自ORM)并且我不希望它们被转发给恶意的第三方。

我可以防止这种行为吗?如果可以,有没有办法明确发送应该发送给客户端的错误消息?

4

2 回答 2

2

更新答案

AutobahnPython 默认不再发送回溯。

当调用引发异常的被调用者的过程时仅转发异常 - 而不是完整的回溯。要启用回溯转发,traceback_app = True请在被调用方的 ApplicationSession.


不推荐使用的答案:以下原始答案仅适用于 AutobahnPython 中的 WAMP v1 代码,该代码已被弃用和删除。

带有 WAMP1 代码的 AutobahnPython 的最新版本是 0.8.15,您可以在此处此处找到。

您可以覆盖onAfterCallError派生自的类上的钩子autobahn.wamp.WampProtocol(请参阅此处或生成的文档)。

在您的覆盖中,您可以执行自定义日志记录和/或修改错误对象,这是发送给调用者的 WAMP RPC 错误返回的基础。

于 2013-06-19T07:17:25.153 回答
1
try:
    main()
except Exception, e:
    log(str(e))
于 2013-06-18T23:02:05.993 回答