トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BBS-サポート掲示板/89

ページの作成や編集にはユーザ登録が必要です。

 子Wikiでのセッションの維持 - Yoshimov (2003年09月10日 12時41分35秒)

Perl 5.6.1+mod_perl+FSWiki 3.5.1dev2で使用していますが、ログイン状態のままFarmを使った子Wikiに入るとセッションが切れてしまい、親Wikiに戻った時に再度ログインし直しになります。

以前に親Wikiのアカウントは子Wikiでも有効になる、という記事を見た覚えがあるのですが、そのようにならないでしょうか。

  • mod_perl環境ではありませんが、isweb(Perl5.6?)上のFSWiki3.5.1dev1にて同じ現象を経験しています。親Wikiと子Wikiとは別アカウントでログインしています。 - 名無しさん (2003年09月10日 13時21分01秒)
  • どうやら、CGI::Cookieのバージョンによって、path=/ が入ってしまうようです。少なくとも、1.24と1.18では入ることを確認しました。path=にcgiのパスを入れることは可能でしょうか。 - Yoshimov (2003年09月13日 21時29分41秒)
  • BugTrack-wiki/122で違う対策をしていただけそうですが、とりあえずCGI::Cookieの1.12を参考に、セッションを別々にするようなパッチを作ってみました。 - Yoshimov (2003年09月17日 07時32分58秒)
*** CGI2-org.pm	Sat Sep  6 17:18:40 2003
--- CGI2.pm	Tue Sep 16 18:05:07 2003
***************
*** 53,60 ****
  	if(!defined($self->{session_cache})){
  		my $dir     = $wiki->config('log_dir');
  		my $session = CGI::Session->new("driver:File",$self,{Directory=>$dir});
! 		
! 		my $cookie = CGI::Cookie->new(-name=>'CGISESSID',-value=>$session->id());
  		print "Set-Cookie: ".$cookie->as_string()."\n";
  		
  		$self->{session_cache} = $session;
--- 53,66 ----
  	if(!defined($self->{session_cache})){
  		my $dir     = $wiki->config('log_dir');
  		my $session = CGI::Session->new("driver:File",$self,{Directory=>$dir});
! 		my $limit = $wiki->config('session_limit');
! 		my $path = CGI::url(-absolute=>1);
! 		my $farm = $wiki->{"CGI"}->path_info();
! 		if (!($farm eq "")) {
! 		    $path .= $farm;
! 		}
! 		my $cookie = CGI::Cookie->new(-name=>'CGISESSID',-value=>$session->id(),-expires=>'+'.$limit.'m',-path=>$path);
! 
  		print "Set-Cookie: ".$cookie->as_string()."\n";
  		
  		$self->{session_cache} = $session;
  • 調べてみたところ、クッキーは正しく渡されているのですが、CGI::Sessionのセッションファイルをlogディレクトリに格納しており、Farmの場合はlogディレクトリがネストしまうのでセッションファイルを共有できていなかったのが原因でした。以前はクッキーだけでセッション管理していたのでうまく動いていたんです。3.5.1ではFarm時にもセッションファイルを共有する形で修正しようと思います。 - たけぞう (2003年09月21日 14時32分41秒)
  • 3.5.1dev5でもexpiresは指定していないようですが、sessionにexpiresを指定するようにはしていただけないでしょうか。 - Yoshimov (2003年10月10日 11時07分37秒)
お名前: コメント:
cgi2-diff.txt

最終更新時間:2003年10月10日 11時07分37秒