在Erlang中显示特定于连接的cookie

时间:2015-10-27 17:00:56

标签: erlang

在具有erlang:set_cookie/2的节点上设置cookie时,可以为不同的节点设置不同的cookie。有没有办法显示哪个cookie为哪个节点设置?

调用erlang:get_cookie/1不会显示此信息,只会显示“默认”Cookie。

示例:

使用Cookie foo启动NodeA,使用Cookie bar启动NodeB。现在,NodeA通过调用bar设置cookie,以便在与NodeB通信erlang:set_cookie(NodeB, bar)时使用。 Ping现在工作正常,没有“连接尝试不允许的节点...”错误。但是,在NodeA上调用erlang:get_cookie()仍会显示“默认”Cookie foo。如何找到为NodeB设置的cookie?

2 个答案:

答案 0 :(得分:6)

似乎没有记录,但auth:get_cookie/1做了你想要的。对于您的情况,您可以在auth:get_cookie(NodeB)上致电NodeA

答案 1 :(得分:0)

您必须在NodeB上运行get_cookie/0函数才能获取该节点的名称。简单的解决方案是(在NodeA上):

rpc:call(NodeB, erlang, get_cookie, []).

连接节点后。

在NodeA上进行erlang:set_cookie(NodeB, bar)调用只是让NodeA / NodeB可以相互连接,它们仍然有原始的cookie。

但是为了能够连接到其他节点,您必须已经知道该节点的cookie :)