$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

MojoliciousでPlack::Middlewareを使う

 MojoliciousでPlack::Middleware::CSRFBlockを利用したかったので、どうやって使うか調べてみました。
 
 Mojoliciousの場合、Plack::Middlewareを利用するにはscript/sampleのようなサーバ起動用スクリプトをPlack::Builderを使うようにすると、利用出来るようになります。以下のように書きます。

#!/usr/bin/env perl

use strict;
use warnings;

use File::Basename 'dirname';
use File::Spec;

use lib join '/', File::Spec->splitdir(dirname(__FILE__)), 'lib';
use lib join '/', File::Spec->splitdir(dirname(__FILE__)), '..', 'lib';

# Check if Mojo is installed
eval 'use Mojolicious::Commands';
die <<EOF if $@;
It looks like you don't have the Mojolicious Framework installed.
Please visit http://mojolicious.org for detailed installation instructions.

EOF

# Application
$ENV{MOJO_APP} ||= 'Sample';

use Plack::Builder;
builder {
    enable 'Session';
    enable 'CSRFBlock';
    Mojolicious::Commands->start;
};