h2o で Basic Auth
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 はなかったのでやめた。
関連エントリー
- nginx の rewrite ルールっぽく h2o の mruby でリクエストの rewrite を行う このサイトのHTTPS化にあたって nginx で書いていた rewrite のルールを h2o の mruby で処理するように変える必要...
- 現在の h2o.conf.yaml 今のこのサイトの h2o.conf.yaml です。HTTPS (443) のみを処理しています。HTTP (80) は nginx で受け...
- h2o の casper を一時的に無効にする h2o の casper (cache-aware server-push) を有効にしていると、force reload したときでも p...
- ruby-serialport で任意のボーレートを設定するには (ただし Linux に限る) ruby serialport は、このあたりで設定できるボーレートを列挙していて、これら以外のボーレートを設定できないようです (unkn...
- センサーデータ用に RabbitMQ + MQTT をセットアップする RabbitMQ + MQTT で Pub/Sub サーバを立てることにしました。 いろいろなセンサーのグラフ化にあたって GrowthFo...