Mojoliciousのunderがうごかない?
クライアントでネイティブに動くゲームと、そのゲームのスコアを集計してランキングを表示する簡単なwebサービスを作ってみたいな〜という思いが湧いてきてしまって最近、Mojolicious::Liteをかじってみている。
Perlではおなじみの木本さんのサンプルコード
(http://d.hatena.ne.jp/perlcodesample/20140412/1396426029)
を直接使って動かしてみたのだが、ユーザー名をadminにしてもなぜかForbiddenのページが現れてくれない。なぜだろう。環境が合ってないからなのかな。分からないのでここに書き留めておく。
確かにadmin.
ファッ・・・!?
以下は引用です。
use Mojolicious::Lite; # 前処理 under sub { my $self = shift; # ユーザーがadminの場合は許可しない my $user = $self->url_for->path->parts->[0] // ''; if ($user eq 'admin') { $self->res->code(403); $self->render(text => 'Forbidden'); return } return 1; }; # /ユーザー名/プロジェクト名/ディレクトリ名 # あるいは /ユーザー名/プロジェクト名 get '/:user/:project/*dir' => {dir => undef} => sub { my $self = shift; # パラメーター my $user = $self->param('user'); my $project = $self->param('project'); my $dir = $self->param('dir') // 'Nothing'; # 描画 $self->render( 'index', user => $user, project => $project, dir => $dir ); }; any '/http-method' => sub { my $self = shift; # HTTPメソッドの取得 my $http_method = $self->req->method; $self->render(text => "HTTP Method: $http_method"); }; app->start; __DATA__ @@ index.html.ep <% my $user = stash('user'); my $project = stash('project'); my $dir = stash('dir'); %> <html> <head> <title>Routing</title> </head> <body> User: <%= $user %><br> Project: <%= $project %><br> Directory: <%= $dir %></br> </body> </html>