Play2.0 - secureクッキーは設定でオンにしておきたいけど開発機ではオフにしたい場合
secureクッキーは、HTTPSを使っていない場合にはブラウザからサーバに送り返されないフラグを付けたクッキーのことです。
秘密情報をクッキーに乗せて覚えさせたのに、うっかりさんユーザーがHTTPでアクセスしてきてクッキー内容がパケット盗聴で漏れるとかもうダメダメパターンですからね。
Play! frameworkでHTTPSを使うサイトなら、application.confに
session.secure=true
の一行を加えて、セッション情報を格納するクッキーには必ずsecureフラグが付くようにしてあげましょう。
ところが問題が。
この設定があると、HTTPではログインとかまったくできなくなります。開発機の開発サーバでも。デバッグできないじゃない。
開発機だけapplication.confを入れ替えるとかそういうのはソース管理が単に面倒になるので避けたいですね。
でも簡単、開発サーバの起動オプションでsession.secure=falseを与えれば設定は上書きできるのです。
その起動オプションの与え方。
$ play "run -Dsession.secure=false"
このダブルクオーテーションがコツです。これがないとrun
というコマンドと-Dsession.secure=false
というコマンド(そんなものはない)を並べただけということになってしまうので。
Windows, UNIX系どちらのシェルでも同様です。
ダブルクオーテーションが必要なことはこちらの記事で教えてもらいました。