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
_______________________________________________
dancer-users mailing list
dancer-users@dancer.pm
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users

Reply via email to