[Seasar-user:17072] Re: 【Teeda】 ExtensionRedirectUrlResolverImpl の設定について質問です。
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2009年 3月 19日 (木) 01:00:03 JST
小林 (koichik) です.
Date: Wed, 18 Mar 2009 21:54:21 +0900
From: 西山 はじめ <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:17071] 【Teeda】 ExtensionRedirectUrlResolverImpl の設定について質問です。
> しかし、URLをweb.xmlに書くのが運用の問題となるかもしれないと
> いうことで、試行錯誤した結果、
>
> <context-param>
> <param-name>teeda.REDIRECT_URL</param-name>
> <param-value>https:</param-value>
> </context-param>
>
> とだけ設定してもうまくいっているように見えます。
>
> ExtensionRedirectUrlResolverImpl を少し見たのですが、動作す
> る理由がいまいち分かりません。(java.net.URLの仕様?)
>
> この設定で動作するのは仕様なのでしょうか?
> 想定外でたまたま動作しているだけなのでしょうか?
想定外ではあります.
正しく動作するのは (おそらく) たまたまのように
思われます.
RFC 1738 によると,HTTP URL の構文は
http://<host>:<port>/<path>?<searchpart>
となっており,:<port> や <path>,?<searchpart> 等は
省略可能となっていますが,//<host> については
省略可能とは読めません.
しかし,REDIRECT_URL に https: だけ指定した場合
組み立てられる URL は //<host> が省略された
https:/<path>?<searchpart>
となります.
これは好意的に解釈すれば現在のホストをベースとする
URL ですが,そのように解釈しないブラウザがあっても
文句は言えないように思われます.
歴史的には
/ ホストにおける頂点を表す (ルート)
// ネットワークにおける頂点を表す (スーパールート)
であり,// ではなく / で始まるパスは現在のホストに
おけるルートからのパスなので,うまく動くブラウザが
多いのかもしれません.
詳細は分かりませんが,BIG-IP の場合は Teeda 側より
BIG-IP の iRules で対応する方がいいかもしれません.
http://72.14.235.132/search?q=cache:OZ9cP-_hCEYJ:devcentral.f5.com/Default.aspx%3Ftabid%3D145%26aftopicid%3D28626%26afnav%3DNEXT+F5+BIG-IP+HTTP::is_redirect&cd=1&hl=ja&ct=clnk&lr=lang_ja&client=opera
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内