Tag/Trac
Tracのリダイレクトにバグ?
本日、職場にて、 trac をhttpsで動かしてる方がおられたのですが、 なぜかリダイレクトするとhttpになってしまうとの事。
で、ちょくちょく一緒に調べてみると、 どうやら他にもハマってる人がいるらしく、色々と情報が出て来た。 その中の情報で、 trac/web/api.py にいるRequestクラスの持つredirectを書き換えて治ったよ。 ってのを発見。コイツがリダイレクトを一手に担ってるらしい。
trac-0.10.4 だとこうなってる。327行目あたりを抜粋。
self.send_response(status)
if not url.startswith('http://') and not url.startswith('https://'):
# Make sure the URL is absolute
url = urlparse.urlunparse((self.scheme,
urlparse.urlparse(self.base_url)[1],
url, None, None, None))
多分、ココの self.base_url って中に trac.ini で定義してる base_url が入ってるんだろうけど、 すでにプロトコルの部分を無視してるっぽい。
で、 trunk のソースを一応確認してみると、 こんな感じになってる。 277行目 あたりを抜粋。
self.send_response(status)
if not url.startswith('http://') and not url.startswith('https://'):
# Make sure the URL is absolute, honor base_url for
# scheme and host if present
scheme, host = urlparse.urlparse(self.base_url)[:2]
url = urlparse.urlunparse((scheme, host, url, None, None, None))
self.base_url からプロトコル部分も取ってくるように変更されてる。なるほど。
無理を承知で書き換えをお願いしたところ、見事に意図した通りに動いたよ。 self.scheme ってのがどこから来てるかは分からないままだけど、 どこかでhttpに固定されちゃってるんだろうなぁ。と推測。
trac-0.11 のリリースが遅れに遅れまくって、 あげくの果てには trac-0.10.5 が表に出て来ちゃってるけど、 早く最新版がリリースされないかなぁ?と思う今日この頃であります。
- Posted at:
- 2007/10/16 23:15:09
- 0 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/10/16/bug-on-trac-redirect/trackback/
興味シンシン
Twisted Mind さんの コチラのエントリー より。
Trac + MySQL + mod_wsgi の環境構築テストをされてるみたいです。
前に Trac 0.10.3で MySQL 使ってオオハマリしただけに、コレはちょっと興味シンシン。上手く行くといいなぁ。ってか、上手く行ってほしい!一度やってみた時にはチケットまわりでSQLエラー吐きまくってチケットが全く使えなかった。
そういえば、まだ先の事だと思って調べてなかったけど、 mod_wsgi で動く Trac も TracEnvParentDir とかって設定出来るんでしょうか?出来るなら乗り換えやすいんだけどなぁ。
ここはとりあえず期待して感想を待つ事にしよっと。
- Posted at:
- 2007/06/18 02:22:54
- 4 Comments
- 0 TrackBacks
- Trackback:
- http://humming.via-kitchen.com/2007/06/18/very-interested-it/trackback/