Hatena::ブログ(Diary)

Mafice’s Blog

2011 06/17

Basic認証の実装

この上なく暇だったのでやってみました。

Basic認証の実装に当たって、必要な事はWikipediaに全部書いてありました。

URLに日本語が含まれていてうまくリンクがはれないので英語版です。

Basic access authentication - Wikipedia, the free encyclopedia


Reseaがやってることは以下の通りです。

  • Webブラウザからアクセスが来たら401を返す
  • Webブラウザ上でユーザ名&パスワードを入力 (Webサーバは関係なし)
  • HTTPヘッダ内のAuthorization ヘッダフィールドを読んで、正しかったら200とHTML等を返す。

とりあえずテスト。

QEMU上でReseaを起動している同LAN内のデスクトップPC(IPアドレス: 192.168.24.54)にMacBookからアクセスしてみました。


f:id:Mafice:20110617232057p:image

ユーザ名とパスワードを入力


f:id:Mafice:20110617232058p:image

出てきた!


ネットワーク関連も大体動くものになってきたので、そろそろインターネット上で動かしてみたいです。

さくらのレンタルサーバにMercurialをインストールしてみた

ラインエディタを作る時にSourceForge.JPにプロジェクトとして登録するほどでもないし、PersonalForgeはGitだし…ということでさくらのレンタルサーバ(スタンダード)にMercurialをインストールして使う事にしました。

参考にさせていただいたWebページ

Mercurialの複数のリポジトリをhgweb.cgiで公開する - ::Eldesh a b = LEFT a | RIGHT b

JapaneseCGI_Install - Mercurial

PublishingRepositories - Mercurial

早速インストール

$ cd ~/tmp
$ wget http://mercurial.selenic.com/release/mercurial-1.8.4.tar.gz
$ tar zxvf mercurial-1.8.4.tar.gz
$ cd mercurial-1.8.4
$ python setup.py install --prefix=/ホームディレクトリ/bin/mercurial

次にリポジトリ作成

$ cd ~/www/hoge/foo/bar/
$ ~/bin/mercurial/bin/hg init

cgiを置く

$ cp ~/tmp/mercurial-1.8.4/hgweb.cgi index.cgi
$ chmod 705 index.cgi

cgiをviやらemacsやらで開き、コメントアウトされている部分2つを

config = "/home/なんとか/hgweb.conf"
import sys; sys.path.insert(0, "/home/なんとか/bin/mercurial/lib/python2.6/site-packages/")

とし、

from mercurial import demandimport; demandimport.enable()

の前に

import os 
os.environ["HGENCODING"] = "UTF-8"

を追加。

.htaccessファイルを書いて設置。自分はこのサイトを利用させていただきました。

.htaccess ファイルを簡単作成「.htaccess Editor」

また、Options ディレクティブを使用すると「Internal Server Error」がでるかもしれません。

設定したのは、Basic認証とAddHandler cgi-script .cgiです。


hgweb.confを編集

[paths]
プロジェクト名 = パス

サーバ側のホームディレクトリの.hgrcを編集

[web]
push_ssl = false
allow_push = *

アクセスしてみる

f:id:Mafice:20110617004345p:image

できたー!


pushしてみる

$ hg clone http://Basic認証のユーザ名@index.cgiのあるディレクトリ/index.cgi/プロジェクト名
$ cd プロジェクト名
$ echo "はろー" > hello.txt
$ hg add hello.txt
$ hg commit -m "テストコミット"
$ hg push

またアクセスしてみる

f:id:Mafice:20110617005721p:image

またできたー!

これで素敵なMercurial生活が過ごせそうです。