「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。viewsTweet久々にmod_mrubyの話題のような気がします。さんからApacheの認証系の機能実装のpull-requestを頂いたの早速マージしておきました。機能詳細は、BlogかWikiに書いてくれるということなので、今回はざっとBasic認証のサンプルの紹介と、先ほど実装したRedis連携の機能追加を紹介します。さんが実装してくれた機能はApacheのBasic認証とDigest認証をmod_mruby上で実現するための機能です。サンプルは以下のようになります。Apacheのconfに以下のような設定を記述します。valid-user</Location>さらに、/var/www/html/auth.rbに以下のように記述します。アクセスがあると認証が求められ後、入力するとmrubyスクリプトがフックされ、上記のスクリプト内のanp.userとanp.passwordに入力したBasic認証の値が入って、評価されます。Basic認証に、もう少し認証の条件を増やしたい場合等に有用なこと間違いなしでしょう。mod_mrubyからRedis連携mod_mrubyからRedis連携できるようにしました。最低限の機能として、getとsetメソッドを実装しました。サンプルは以下のようになります。redis.get(key))そして、Apacheにアクセスすると以下のように表示されます。value)でkeyとvalueをsetし、redis.get(key)でvalueをgetします。今後は、柔軟にRedisと連携できるようにメソッドを追加していこうと考えています。使いどころとしては、mod_mrubyでproxyやvhost系の実装の際に、Redis経由で値をとってくるようにすると便利だと思います。Nginx+Lua+Redisによる動的なリバースプロキシの実装案」を参考にすると良いと思います。redis経由で認証するでは早速、上記の認証とredisを連携してみましょう。これらの機能によって、例えば以下のような実装が可能になります。anp.passwordApache.return(Apache::AuthnProvider::AUTH_GRANTED)elseApache.return(Apache::AuthnProvider::AUTH_DENIED)endredis-cliへ事前に以下のように、ユーザとパスワードを登録しておきます。quitすると、Basic認証時のユーザとパスワードの組み合わせをRedisのKVSから抜き出すことができます。さいごにこのように、Redisと認証を実装したことで、よりApacheをコントロールする事が楽しくなってきたと思います。プロキシ機能やrewrite機能、またはvhostの振り分けにRedis連携を使うとかなり便利になるだろうと考えています。今後は、mod_mrubyの機能をベースに、ngx_mrubyもできるだけ同等の機能を実装していきたいと思っています。pull-requestはいちでもお待ちしていますので、Apacheの基本機能として今後これはいるだろうという機能があれば、mod_mrubyレポジトリまでいつでもpull-request下さい。HTMLタグが使用できます。Comment上に表示された文字を入力してください。matsumoto-rさんが書かれたblogの記事や、exampleに入っているサンプルを見ると使い方がわかると思います。