Ticket-7
adminでログインしても管理者画面が選択できない
- Priority
- Normal
- Reporter
- nkoz
- Status
- Closed
- Assigned to
- かずひこ
- Version
- 0.8.0
- Milestone
- 0.8.1
- Created
- 2005-07-12
Description
xrea.comに設置したhikiで、adminでログインしても管理者画面が選択できません。「ログイン」へのリンクが出たままの状態になります。
サマリー
クッキーが機能しないCGIがあるのですが。 より引用:
以下のケースが重なった時に、クッキーが機能しないCGIがあります。
1. 外部呼び出しをしている
2. 広告を自動表示にしている
3. LocationとCookieを併用している
この様な場合にはxディレクトリを利用するか拡張子を.xcgにして広告を非表示にしてから手動で広告を挿入してください。
Hiki 0.8.0 preview1 までのバージョンでは meta refresh によるリダイレクトをしていましたが、Hiki 0.8.0 では Location ヘッダによるリダイレクトに変更したため、xrea.com の上記の制限に引っかかったようです。
Hiki 0.8.1 では設定ファイル hikiconf.rb で
@use_refresh = true
と指定することで、従来の meta refresh によるリダイレクトをするようにしました。
[2005/09/30 追記] Hiki 0.8.4 では @use_refresh は廃止され、常に @use_refresh=true 相当の動作をするようになりました。
以下、問題発見時点での情報
ユーザー側で出来る対策
1.広告タグを手動挿入にする。
- hiki.cgi を hiki.xcg にリネームし、hikiconf.rb の @cgi_name を hiki.xcg に変更。広告は手動で挿入する。
- hiki を public_html/x 以下に設置し、広告は手動で挿入する。
add_body_enter_proc {
adxrea
}
def adxrea
sources = <<EOS
<!-- ここにXREA の管理画面で表示される広告タグをコピーして保存 -->
EOS
end
上記のようなプラグインを作って登録するといちいちCGIをいじらなくてもいい(ただし、このままでは広告表示場所がタイトル文字列の真下……)
2.いさぎよく、広告免除権を購入
付記:デフォルト設定だと、Location ヘッダで出力するURLが相対URLになってますが、Location ヘッダで指定するURLは絶対URLでないといけないはずです。(それがLocationがきかない理由かどうかはわかりません)
- 2005-07-12 (火) 10:36:50 7743 : xrea.comで設置してますが、こちらでは管理者としてログインできてます。もうすこしインストール時の状況やhikiの設定などを書かれたほうが原因の追究をしやすくなると思います。
- 2005-07-13 (水) 00:04:10 nkoz : 0.8.0 preview1から上書きアップデートしました。0.8.0 preview1ではログインに問題は生じていませんでした。データは実行ファイルとは別のフォルダに入れて動かしています。cacheフォルダの中身を消す、hikiの実行ファイルを入れ直す等実行しましたがうまくログインできません。hiki.confを消すと管理画面が出るのですが、パスワードを登録した後にログインできません。間違ったパスワードを入れるとエラーメッセージは正常に表示されます。adminのログイン以外のHikiの機能は正常に動作しているようです。rubyのバージョンは1.8.1。hiki.cgiのパーミッションは700。広告免除はしていません。試しにxディレクトリに移動したら正常にログインできました。
- 2005-07-13 (水) 12:45:51 7743 : 今、広告免除してないxreaのサイトでhiki設置してみました。ご報告のとおり、ユーザ名とパスワードを入れた後ログインできてませんね。
- 2005-07-13 (水) 12:51:57 7743 : こちらで使ったhikiのバージョンは0.8.0(2005-07-09)です。dataパス以外はデフォルトのまま。hiki.cgi はindex.cgi としています。
- 2005-07-13 (水) 12:53:47 7743 : ログインが出来ないのは、おそらくログイン状態を保持するためのクッキーが正常に受け取れてないせいだとおもいます。
- 2005-07-13 (水) 12:56:20 7743 : nkozさんは管理画面以外は普通に使えてるとおっしゃってますが、Location自体もうまくはたらいてません。
- 2005-07-13 (水) 12:57:19 7743 : #一行コメントだけだと、コメント内にソースや出力結果などを含めにくいです(泣 >Kazuhiko様
- 2005-07-13 (水) 13:22:19 かずひこ : ページ編集を許可するようにしました。ITS 用のプラグインらへんはそのままにしておいてください。:)
- 2005-07-13 (水) 14:26:46 7743 : ありがとうございます。ちょっと書き込んでみました。参考になれば幸いです。
- 2005-07-13 (水) 15:14:46 かずひこ : Locationヘッダに絶対パスを渡すように修正しました。ログイン認証の変化はすぐには思い当たりません。。。
- 2005-07-13 (水) 17:04:51 7743 : Locationはうまく動作するようになりました。ありがとうございます。
- 2005-07-13 (水) 17:13:13 7743 : http://xreafaq.com/cgi.html に FAQ がありました。xreaでクッキーが機能しないCGIにばっちり相当してます>hiki (ごちゃごちゃ編集しまくってすみません)
- 2005-07-13 (水) 18:27:30 かずひこ : ということは、hiki-0.8.0-preview1 の util.rb の def redirect に戻せば動作する、ということですね。設定でこの動作を切り替えられるようにして、XREA 方面はそこを変更するようドキュメントを書くということでよろしいでしょうか?
- 2005-07-13 (水) 18:36:12 かずひこ : @conf.use_refresh が true のときは、Location ではなく meta refresh およびリンクで移動できるようにしましたので、ご確認ください。
- 2005-07-13 (水) 22:18:51 nkoz : 0.8.0 (2005-07-12)で@use_refresh = true で試したところ、ログインできるようになりました。対応ありがとうございました。
- 2005-09-30 (金) 22:50:26 taketori : ticket29の続きです。結論からいうと、「広告タグを手動挿入〜」の1番目の方法でできました。ticket29でのご質問ですが、書換えできない状態ではクッキーは保存されていませんでした。また、セッションIDファイルが12個ありました(今=ログインできる状態でも12ファイルできます。消しても毎回同じ名前の12個ができます)。
- 2005-09-30 (金) 22:56:25 taketori : 関係あるのかどうかわかりませんが、ブラウザーでクッキー発行毎にそれを受付けるか問い合わせる設定にしています(ログイン失敗時、その問い合わせはなかった)。また、このとき「Wait or 〜」画面の広告は表示されない(厳密には、InternetExplorerが広告の位置に「取り消されたアクション」という表示をする)状態でした。ご参考まで。
Keyword(s):
References:[Ticket-29]