在 Erlang 中显示特定于连接的 cookie
Display connection specific cookies in Erlang
在 erlang:set_cookie/2
的节点上设置 cookie 时,可以为不同的节点设置不同的 cookie。有什么办法可以显示,哪个cookie是为哪个节点设置的?
调用 erlang:get_cookie/1
不显示此信息,仅显示 "default" cookie。
示例:
用 cookie foo
启动 NodeA,用 cookie bar
启动 NodeB。在 NodeA 现在通过调用 erlang:set_cookie(NodeB, bar)
将与 NodeB 通信时使用的 cookie 设置为 bar
。 Ping 现在工作正常,没有 "Connection attempt from disallowed node..." 错误。然而,在 NodeA 上调用 erlang:get_cookie()
仍然显示 "default" cookie foo
。如何找到为NodeB设置的cookie?
您必须 运行 NodeB 上的 get_cookie/0
函数才能获取该节点的名称。简单的解决方案是(在 NodeA 上):
rpc:call(NodeB, erlang, get_cookie, []).
连接节点后。
在 NodeA 上执行 erlang:set_cookie(NodeB, bar)
调用只是让 NodeA/NodeB 可以相互连接,它们仍然有它们的原始 cookie。
但是为了能够连接到其他节点,您必须已经知道该节点的 cookie :)
它似乎没有记录,但 auth:get_cookie/1
做你想做的。对于您的情况,您可以在 NodeA
上致电 auth:get_cookie(NodeB)
。
在 erlang:set_cookie/2
的节点上设置 cookie 时,可以为不同的节点设置不同的 cookie。有什么办法可以显示,哪个cookie是为哪个节点设置的?
调用 erlang:get_cookie/1
不显示此信息,仅显示 "default" cookie。
示例:
用 cookie foo
启动 NodeA,用 cookie bar
启动 NodeB。在 NodeA 现在通过调用 erlang:set_cookie(NodeB, bar)
将与 NodeB 通信时使用的 cookie 设置为 bar
。 Ping 现在工作正常,没有 "Connection attempt from disallowed node..." 错误。然而,在 NodeA 上调用 erlang:get_cookie()
仍然显示 "default" cookie foo
。如何找到为NodeB设置的cookie?
您必须 运行 NodeB 上的 get_cookie/0
函数才能获取该节点的名称。简单的解决方案是(在 NodeA 上):
rpc:call(NodeB, erlang, get_cookie, []).
连接节点后。
在 NodeA 上执行 erlang:set_cookie(NodeB, bar)
调用只是让 NodeA/NodeB 可以相互连接,它们仍然有它们的原始 cookie。
但是为了能够连接到其他节点,您必须已经知道该节点的 cookie :)
它似乎没有记录,但 auth:get_cookie/1
做你想做的。对于您的情况,您可以在 NodeA
上致电 auth:get_cookie(NodeB)
。