モノはBasic Authorization(CherryPy)のbasicauthfilter.2.py(以下basicauthfilter2.pyと名前変更しています)と同じです。違うのはRootクラスでは無いということで、やったことを以下に挙げます。
basicauthfilter2.pyのRootクラスを任意のクラス名に変更します(ここではAuthTest)。次にこの変更したクラスをcontrollers.pyのRootクラスで生成します。このとき変数名は「auth」とします。なのでcontrollers.pyには以下の記述を追加します。
from basicauthfilter2 import AuthTest ... class Root: auth = AuthTest() ...
そして、AuthTestの_cpFilterListの生成部分でBasicAuthFilterの引数をつっこむところのunauthorizedPathを以下のようにRootに足した変数名を付け足します。
_cpFilterList = [ BasicAuthFilter(cppasswordPath='.cppassword', realm='localhost', unauthorizedPath='/auth/unauthorized') ]
あとは***start.pyと同じディレクトリにに平文で「ユーザ名:パスワード」が書かれたファイル.cppasswordを生成します。そうしてhttp://localhost:8080/authにアクセスすれば認証のダイアログが開きます。これでauth以下(つまりAuthTestで定義したページ)に対しては認証がかかりますが、auth以外のページには認証無しでアクセスできます。
BasicAuthFilterの引数にダイレクトで"auth"とか書くのは正直まずいので修正する必要があります。まぁ後回し...(泣
日記コンテンツをDBにつっこむべくDB設計をしてるけどどんどん増えていく...。SQLObjectでORマップするとはいえ属性としてのテーブルは考えないと当然いけないわけですが、うーん破綻しそう。まぁいきなり全部つっこもうとするのが間違いなのかも。大体できたくさいからこっからSQLObjectのモデルを作る。その過程でボロがでそう。
今月いっぱいはこんなこと続けてます。はてさて何ができるやら。