[dancer-users] Dynamic config setting upon startup [D1]

Hermann Calabria hermann at ivouch.com
Thu Jan 3 23:52:25 GMT 2019


Hi all,

I’m using Dancer::Session::Cookie and facing a bit of a conundrum with the session_cookie_key a setup in the config file.  

As we all know it’s not recommended to include live secrets in a git repository, so I’m attempting to create the session_cookie_key dynamically upon Dancer startup (documented here: https://metacpan.org/pod/Dancer::Config#SETTINGS), as follows:

use Dancer;
set session_cookie_key => crypto_nonce(20);

...

dance;

where crypto_nonce() is a cryptographically strong nonce generator (this approach happens to work for this particular app, because it’s an admin/dashboard panel with a small number of infrequent users, and the it runs on a single machine).

I try to run the app, and get the following error:
The setting session_cookie_key must be defined at /home/hermann/perl5/perlbrew/perls/perl-5.26.2/lib/site_perl/5.26.2/Dancer/Session/Cookie.pm line 38

So I add the following to environments/production.yml:
session_cookie_key : “1”

Try to run the app again, and not unexpectedly, I end up with session_cookie_key = 1.

I can work around the problem by adding a hook:

hook 'before' => sub {
  if ( length(config->{'session_cookie_key'}) < 5 ) {
    set session_cookie_key => crypto_nonce(20);
  }
  ...
};

I’m wondering if there’s a more elegant way to accomplish what I’m trying to do?

Thanks in advance!

Hermann
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20190103/bbe97c4e/attachment.html>


More information about the dancer-users mailing list