Bug(バグ) #1810
完了Yahoo! ケータイにおける SSL 仕様変更対応
Kousuke Ebihara さんがほぼ14年前に追加. 約9年前に更新.
100%
説明
Naoya Tozuka さんが13年以上前に更新
- ソフトバンク側の仕様変更:2011年6月末
Q6: 現行のGW中継SSL通信の終了時刻は、いつでしょうか?
A6: 2011/6/30 午前3時頃を予定しております。
Maki Takahashi さんが13年以上前に更新
End-to-EndのSSL/TLS利用時は、非SSL時と比較して以下の点が異なります。 ・文字エンコーディング変換(*1)を行わない ・独自拡張ヘッダ(*2)を利用できない ・ISO-2022絵文字(*3)を利用できない *1: Request URI とエンティティボディの EUC-JP、ISO-2022-JP → Shift_JIS への変換 *2: x-jphone-color、x-jphone-display、x-jphone-msname、x-jphone-region、x-jphone-smaf、x-jphone-uid、x-s-bearer、x-jphone-copyright *3: 「$G!」等の絵文字。Unicode数値文字参照形式の絵文字である「」等は利用可能
- 文字エンコーディング変換についてはOpenPNE内で変換を行った後に出力しているため問題なし。
- 独自拡張ヘッダについては「簡単ログイン」にて使用している(x-jphone-uid)ため、対応が必要です。
- 絵文字についてUnicode数値文字参照形式を利用するように対応が必要です。
絵文字( http://creation.mb.softbank.jp/web/web_pic_about.html )については
先行対応が可能なため、別チケットにて対応します。
また、現在、GWを通さずに直接HTTPSのURLにアクセスした場合(メールのリンク、直接URL入力でアクセス)
GWにリダイレクトさせているので、その部分も修正が必要です。
Maki Takahashi さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
ff145b3 にて仕様変更される「2011/6/30 午前3時」を境に、GWへのリダイレクトをとりやめ
直接HTTPSリクエストとなるように修正しました。
実環境でのテストは仕様変更されなければ不可能なので、unitテストを作成して動作確認しています。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
一点フィードバックします。
SSL中継が終了しているかの判定箇所ですが、
strtotime('2011/6/30 03:00:00') > time()サーバ機のタイムゾーン設定が日本標準時(JST)以外に設定されている場合、時差のため終了判定が遅れ(あるいは早まり)ます。
ここは厳密に $spec_change_date を '2011/06/30 03:00:00 JST' あるいは '2011-06-30T03:00:00+0900' とし、strtotime() に時差を吸収してもらうと良いかと思います。
ちなみに、SSL中継の終了時刻は6月30日午前3時"頃"とのことなので、比較演算子は > でも >= でも構わないです。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 70 から 50 に変更
Kousuke Ebihara さんが13年以上前に更新
追加で数点指摘します。修正をご検討ください。
- $spec_change_date プロパティについて、
- クラス定義の冒頭部分で宣言をおこなうようにしてください。これはコーディング規約にはない事項ですが、冒頭部分以外でのプロパティの定義はあまり一般的ではないと思います
- プロパティ名は camelCaps で記述してください(http://www.openpne.jp/coding-standards-ja/#id11)
- そもそも、 $spec_change_date という命名は適切とは言えません。 opExecutionFilter クラスは SoftBank の SSL 対応のためにあるクラスではないため、 $spec_change_date という名前を見ただけでは SoftBank の SSL 仕様変更を表すことが想像できません。携帯版における SSL 関連処理が opExecutionFilter に押し込まれて肥大化していることも原因の一端ではありますが、このプロパティについては SoftBank や SSL という語を含めるなどしてもう少し説明的にすることはできないでしょうか。あるいは、コメントで説明を加えることはできないでしょうか。
- $spec_change_date の性格から言えば、この値をクラス定数で定義するのも悪くないと思います(修正の必要はないです)
- 以下のコードはあまり直感的ではありません。 SoftBank の仕様変更後には、常に「SoftBank のゲートウェイへのリダイレクトの必要」はなくなるわけですから、 $spec_change_date と time() との比較は opWebRequest::needToRedirectToSoftBankGateway() のなかでおこなうようにするのがベターなのではないでしょうか(このメソッドに対してのユニットテストであればきっと書きやすいと思います/今回の修正分以外のテストも追加しなければならないという手間はありますが……)。
if ((strtotime($this->spec_change_date) > time()) && $request->needToRedirectToSoftBankGateway())
Maki Takahashi さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
フィードバックに従いopExecutionFilter内で行っていた処理をopWebRequest内で行うように修正しました。
https://github.com/openpne/OpenPNE3/commit/5076ddc28602cd157a7927eac611987d487acbfb
にて、先の修正を取り消し、
https://github.com/openpne/OpenPNE3/commit/534dd33ce9f2fbb46f747c74fd7bce558be95ca6
にて、フィードバックに従って修正をいたしました。
- $spec_change_date の性格から言えば、この値をクラス定数で定義するのも悪くないと思います(修正の必要はないです)
こちらに関してのみ、テストの都合で値を変更したかったので変数のままとしています(変数名は変更いたしました)。
実環境でのテストはやはり仕様変更前では不可能なので、すでに存在していたunitテストファイルにテストを追加して動作確認しています。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
修正確認しました。OKです。
Mutsumi Imamura さんが13年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 進捗率 を 70 から 50 に変更
チケットの説明の記述をお願いします。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
チケットの説明の記述ありがとうございます。