X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=app.psgi;h=9908172efb807320b8562f03bc201b43a6048c40;hb=b0acc85e4194e3e3b57b389a98327a9a8f6fb524;hp=b1bd530dffa5fb4db7bb074a0005b5bb8a757921;hpb=37bc8c4416b152ad3ab5e0c6e9e24b1f94848295;p=gruntmaster-page.git diff --git a/app.psgi b/app.psgi index b1bd530..9908172 100644 --- a/app.psgi +++ b/app.psgi @@ -8,6 +8,10 @@ use Plack::App::Gruntmaster; use Plack::Builder; use Plack::Request; use Digest::SHA qw/sha256/; +use Log::Log4perl; + +use constant ACCESSLOG_FORMAT => '%{X-Forwarded-For}i|%h %u "%r" %>s %b "%{Referer}i" "%{User-agent}i"'; +use constant CONTENT_SECURITY_POLICY => q,default-src 'none'; script-src 'self' www.google-analytics.com; style-src 'self'; img-src 'self'; connect-src 'self',; $Apache2::AuthzCaps::rootdir = $Apache2::Authen::Passphrase::rootdir; my $word = qr,(\w+),a; @@ -65,11 +69,17 @@ sub authenticate { 1 } +Log::Log4perl->init('log.conf'); +my $access_logger = Log::Log4perl->get_logger('access'); + builder { + enable_if { $_[0]->{PATH_INFO} eq '/ok' } sub { sub{ [200, [], []] }}; + enable 'AccessLog', format => ACCESSLOG_FORMAT, logger => sub { $access_logger->info(@_) }; enable 'ContentLength'; + enable Header => set => ['Content-Security-Policy', CONTENT_SECURITY_POLICY]; enable_if { $_[0]->{PATH_INFO} =~ qr,^/static/,} Header => set => ['Cache-Control', 'public, max-age=604800']; enable 'Static', path => qr,^/static/,; - enable 'Log4perl', category => 'plack', conf => 'log.conf'; + enable 'Log4perl', category => 'plack'; enable \&require_admin; enable_if \&some_auth_required, 'Auth::Basic', authenticator => \&authenticate, realm => 'Gruntmaster 6000'; Plack::App::Gruntmaster->to_app