<HTML><HEAD></HEAD>
<BODY dir=ltr>
<DIV dir=ltr>
<DIV style="FONT-SIZE: 12pt; FONT-FAMILY: 'Calibri'; COLOR: #000000">
<DIV>Hi all,</DIV>
<DIV> </DIV>
<DIV>I’m using Dancer::Session::Cookie and facing a bit of a conundrum with the 
session_cookie_key a setup in the config file.  </DIV>
<DIV> </DIV>
<DIV>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: <A 
title=https://metacpan.org/pod/Dancer::Config#SETTINGS 
href="https://metacpan.org/pod/Dancer::Config#SETTINGS">https://metacpan.org/pod/Dancer::Config#SETTINGS</A>), 
as follows:</DIV>
<DIV> </DIV>
<DIV><FONT size=2 face="Courier New">use Dancer;</FONT></DIV>
<DIV><FONT size=2 face="Courier New">set session_cookie_key => 
crypto_nonce(20);</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">...</FONT></DIV>
<DIV><FONT size=2 face="Courier New"></FONT> </DIV>
<DIV><FONT size=2 face="Courier New">dance;</FONT></DIV>
<DIV> </DIV>
<DIV>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).</DIV>
<DIV> </DIV>
<DIV>I try to run the app, and get the following error:</DIV>
<DIV><FONT size=2 face="Courier New">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</FONT></DIV>
<DIV> </DIV>
<DIV>So I add the following to environments/production.yml:</DIV>
<DIV><FONT size=2 face="Courier New">session_cookie_key : “1”</FONT></DIV>
<DIV> </DIV>
<DIV>Try to run the app again, and not unexpectedly, I end up with 
session_cookie_key = 1.</DIV>
<DIV> </DIV>
<DIV>I can work around the problem by adding a hook:</DIV>
<DIV> </DIV>
<DIV><FONT size=2 face="Courier New">hook 'before' => sub {</FONT></DIV>
<DIV><FONT size=2 face="Courier New">  if ( 
length(config->{'session_cookie_key'}) < 5 ) {</FONT></DIV>
<DIV><FONT size=2 face="Courier New">    set session_cookie_key 
=> crypto_nonce(20);</FONT></DIV>
<DIV><FONT size=2 face="Courier New">  }</FONT></DIV>
<DIV><FONT size=2 face="Courier New">  ...</FONT></DIV>
<DIV><FONT size=2 face="Courier New">};</FONT></DIV>
<DIV> </DIV>
<DIV>I’m wondering if there’s a more elegant way to accomplish what I’m trying 
to do?</DIV>
<DIV> </DIV>
<DIV>Thanks in advance!</DIV>
<DIV> </DIV>
<DIV>Hermann</DIV>
<DIV> </DIV></DIV></DIV></BODY></HTML>