Kazuho's Weblog: H2O version 1.7.0-beta1 released with enhanced mruby scripting, CGI, and much more
H2O version 1.7.0-beta1 からは htpasswd も使える Basic 認証のサポートが入ったので、以下のようなコードは最早必要ありません。
現時点だと h2o に Basic Auth の機能が入ってなさそうなので mruby.handler で雑に書く
mruby.handler: | USER = "tsun", PASS = "dere" lambda do |env| auth = env['HTTP_AUTHORIZATION'] if auth method, cred = *auth.split(' ') if method == "Basic" user, pass = cred.unpack("m")[0].split(':') if user == USER && pass == PASS return [ 399, {}, [] ] end end end [ 401, { 'Content-Type' => 'text/plain', 'WWW-Authenticate' => 'Basic realm="Restricted"' }, [ 'Authorization Required' ] ] end
これをかけたいとこに書けば basic auth がかかる。
最初 htpasswd 読むようにしようとしたが mruby に String#crypt はなかったのでやめた。