Project

General

Profile

Backport(バックポート) #2681

パスワード再発行処理を行なおうとすると http://opauthmailaddress/ に飛ばされてしまう

Added by Kousuke Ebihara almost 8 years ago. Updated almost 8 years ago.

Status:
Invalid(無効)
Priority:
Normal(通常)
Assignee:
Target version:
Start date:
2010-10-15
Due date:
% Done:

0%


Description

Overview (現象)

1. 「パスワードを忘れた方へ」リンクよりパスワード再発行の申請を行う
2. パスワード再発行メールに
http://sns.example.com//opAuthMailAddress/passwordRecoveryComplete/token/hogehoge/id/XX
というURLが記載されているので、このURLにアクセスする
3. 新しいパスワード入力して、決定ボタンを押下すると、
http://opauthmailaddress/passwordRecoveryComplete/token/hogehoge/id/XX
というURLに飛ばされてしまう

元の報告:
http://twitter.com/77web/statuses/27406372500

確認バージョン

  • 3.6beta6 再現した
  • 3.4.20 発生せず

Related issues

Related to OpenPNE 3 - Bug(バグ) #1687: パスワード再発行処理を行なおうとすると http://opauthmailaddress/ に飛ばされてしまう Fixed(完了) 2010-10-15

History

#1 Updated by Kousuke Ebihara almost 8 years ago

  • Due date set to 2012-01-12

#2 Updated by Minoru Takai almost 8 years ago

  • Due date deleted (2012-01-12)
  • Priority changed from High(高め) to Normal(通常)
  • Target version changed from OpenPNE 3.4.19 to OpenPNE 3.4.x

この問題は OpenPNE-3.4 系では生じないようです。しかし、なぜ生じないのかについて調査しきれていません。

1. 「パスワードを忘れた方へ」リンクよりパスワード再発行の申請を行う
2. パスワード再発行メールに
http://sns.example.com//opAuthMailAddress/passwordRecoveryComplete/token/hogehoge/id/XX
というURLが記載されているので、このURLにアクセスする
3. 新しいパスワード入力して、決定ボタンを押下すると、
http://opauthmailaddress/passwordRecoveryComplete/token/hogehoge/id/XX
というURLに飛ばされてしまう
  • (1) この問題は 3.4 系では生じない
    • 上記の再現手順 2 の問題は生じるが、手順 3 の問題は生じない
  • (2) しかし元チケットと同等の修正を施しておくことが好ましいかもしれないし、そうでないかもしれない
    • 元チケットでの修正は、上記手順 2 の問題(URLのパス部分の先頭が // で始まっている)が生じないように修正を行なっている

(1) の意味ではこのチケットをこのまま Invalid でクローズすべきですが、 (2) のことを考えると(調査が不完全なことも含めて)クローズしてしまうのは不適切な気がしています。バックポートチケットと元チケットの間で、チケットの設定値を同一にしておく必要があるかどうか分かりませんが、チケットの優先度を下げた上で OpenPNE-3.4.x 向けチケットとして残しておいたほうがよいのではないかと考えています。

#3 Updated by Kousuke Ebihara almost 8 years ago

  • Target version changed from OpenPNE 3.4.x to OpenPNE 3.4.21

#4 Updated by Yuya Watanabe almost 8 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Yuya Watanabe

#5 Updated by Yuya Watanabe almost 8 years ago

3.6では発生して3.4では発生しない理由

form の action 属性値に与えられる url を生成する部分で 3.4 と 3.6 に違いが発生している.
具体的には以下の部分である.

3.4 の apps/pc_frontend/templates/_partsForm.php

  3 $options->setDefault('url', url_for(sfContext::getInstance()->getRouting()->getCurrentInternalUri()));
...
 14 <form action="<?php echo $options->getRaw('url') ?>" method="<?php echo $options['method'] ?>"<?php if (!empty($options['isMultipart'])): ?> enctype="multipart/form-data"<?php endif; ?>>

3.6 の apps/pc_frontend/templates/_partsForm.php

  7 $options->setDefault('url', $sf_request->getCurrentUri());
...
 13 <form action="<?php echo $options->getRaw('url') ?>" method="<?php echo $options['method'] ?>"<?php if (!empty($options['isMultipart'])): ?> enctype="multipart/form-data"<?php endif; ?>>

3.4 で用いている sfContext::getInstance()->getRouting()->getCurrentInternalUri() では頭に付いている // の部分が省かれて取得され,正常に動作する.
しかし 3.6 の場合は $sf_request->getCurrentUri() では // が付与されたまま action 属性として表示してしまうため本チケットの問題が発生する.

問題発生場所

この修正は以下のチケットおよびコミットで変更されている.

#1004 「[Optimization] Decrease generating url by default rule (:module/:action) (デフォルトルール (:module/:action) による URL 生成を減らす)」

e8e250952e1dfaab11b0aceb7119a7afd968ff31

commit e8e250952e1dfaab11b0aceb7119a7afd968ff31
Author: Kousuke Ebihara <ebihara@tejimaya.com>
Date:   Mon May 10 18:47:48 2010 +0900

    there are wrong fetching current URL with parameters in default value of parts (fixes #1004)

diff --git a/apps/pc_frontend/templates/_partsForm.php b/apps/pc_frontend/templates/_partsForm.php
index 5afa4d2..dbac137 100644
--- a/apps/pc_frontend/templates/_partsForm.php
+++ b/apps/pc_frontend/templates/_partsForm.php
@@ -4,10 +4,7 @@ $options->setDefault('method','post');
 $options->setDefault('firstRow', '');
 $options->setDefault('lastRow', '');
 $options->setDefault('mark_required_field', true);
-if (!isset($options['url']))
-{
-  $options->setDefault('url', url_for(sfContext::getInstance()->getRouting()->getCurrentInternalUri()));
-}
+$options->setDefault('url', $sf_request->getCurrentUri());
 ?>
 <?php if ($options['form'] instanceof opAuthRegisterForm): ?>
 <?php echo $options['form']->renderFormTag($options['url'], array('method' => $options['method'])) ?>

対応すべきかどうか

3.4 では #1004 は Enhancement であるため対応することは考えられない.
そのため本問題は発生しないと考えられ,Invalid とすることが正しいと判断できる.

#6 Updated by Yuya Watanabe almost 8 years ago

  • Status changed from Accepted(着手) to Invalid(無効)

note-5 より,本チケットを Invalid としてクローズします.

#7 Updated by Yuya Watanabe almost 8 years ago

  • Description updated (diff)

Also available in: Atom PDF