Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom cookie handling / authentication #72

Open
meyercm opened this issue Apr 10, 2017 · 1 comment
Open

Custom cookie handling / authentication #72

meyercm opened this issue Apr 10, 2017 · 1 comment

Comments

@meyercm
Copy link

meyercm commented Apr 10, 2017

I would like to be able to specify the cookie used when connecting to a certain remote node.

My use case: I have a LAN setup with two separate, distributed applications running. I am currently using standard rpc and pg2 to manage the distributed aspects of both, but now one node in cluster_A needs to make an RPC to a node in cluster_B. I would like to write code like:

gen_rpc:set_cookie(RemoteNode, RemoteCookie), %% Set once per runtime, or in config
gen_rpc:call(RemoteNode, mod, fun, []).

The other alternatives I've considered:

  1. expose some other external API (TCP, REST, etc.)
  2. set all the nodes to use the same cookie.

Both of those work, but don't seem to scale particularly well, nor meet my threshold for elegance. An external API increases complexity (not to mention work!), and adds more surface area for testing and attack vectors. Using the same cookie is far less work, but now my two distributed applications have merged into one amorphous app.

Thoughts?

@priestjim
Copy link
Owner

I could enable an option in the same manner as the tcp/ssl driver options and you could provide a map in there with the node names and the cookies that you wish to use. If you want to update it dynamically, you simply application:set_env and connect to the node. What do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants
@meyercm @priestjim and others