Rack::Auth::IPをリリースしました
GitHubPostRecieverでGitHub以外からのpostは受け付けたくなかったのでRackでIPのアクセス制限ができるRack::Auth::IPというミドルウェアを作ってみました。
rackupのファイルの中で、
require 'rack/auth/ip' # ローカルネットワークにアクセスを制限する use Rack::Auth::IP, %w( 192.168.0.0/24 ) # ブロックでも使える # ipにはIPAddrのインスタンスが与えられる use Rack::Auth::IP do |ip| Your::Model::IP.count({ :ip => ip.to_s }) != 0 end
のように使えます。
$ gem install rack-auth-ip
でインストールできます。
機能的に増やすということはあまりないと思いますが、
http://github.com/walf443/rack-auth-ip/tree/master
でソースコードを公開してますので、何かバグなリがあれば一報ください。
Rackのミドルウェアとして作ることで他の様々なアプリでも同じように設定できるようになるので、Rackは素晴らしいなと思います。