URLベースでのACLをkamaitachiにもつけた
Wowza Media ServerでSWFVerification(っぽいこと)をする方法 - blog.katsuma.tv
それなら kamaitachi でもできるよ。ってことで使いやすいようにサービス化。
AutoConnect の代わりに、AutoConnectACL というサービスを使うと URL ベースでのアクセスコントロールをつけることができるようにしてみた。
echo サンプルの例なら、
package Service::Echo;
use Moose;
extends 'Kamaitachi::Service';
with 'Kamaitachi::Service::AutoConnectACL';
sub allow_pages {
'http://www.unknownplace.org/*',
'http://unknownplace.org/*',
}
sub allow_swfs { 'http://unknownplace.org/*' }
sub on_invoke_echo {
my ($self, $session, $req) = @_;
$req->response(@{ $req->args });
}
のような感じで、AutoConnectACL
を with
して allow_pages
と allow_swfs
を定義すればそこに書かれたURLにマッチするアクセスだけを許可することが出来る。
いちおう Flash の流儀にあわせてなんか glob マッチ方式にしてるんだけど、使いにくいので正規表現でもいけるようにしてある。
sub allow_pages { qr{^https?://(www\.)?unknownplace\.org} }
とか Regexp リファレンスつかえばおk。
allow_pages
が swf の貼り付けてあるページの URL、allow_swfs
が swf 自体の URL にマッチする感じ。