RubyのURI.parseでプロキシーサーバーを設定する際にパスワードとして使えない文字

ユーザー認証付きのHTTPプロキシーサーバーを経由しないと、どこにも行けないネットワークで生活しないといけないことがある。 そんな環境でもRubyスクリプト(実際にはJRubyで動かすことが多い)でWWWにアクセスしなくてはいけないことがある。 RubyのURI.parseが呼ばれると、

URI::InvalidURIError: bad URI(is not URI?)
とエラーになってそもそもWWWにアクセスしに行かないことがある。 これは、ユーザー認証付きのHTTPプロキシーサーバーのパスワードに使えないはずの文字が設定されているためである。 私の環境の場合にはWindowsのActive Directoryの認証情報と連携しているので、Windowsのログオンパスワードとして 良かれと思って記号を使っていると、遭遇してしまうことがある。

では、どのような文字をパスワードとして使用するのを避ければ良いのだろうか? RFC2396であるUniform Resource Identifiers (URI): Generic Syntaxによると、 以下のように書かれている。

   The user information, if present, is followed by a commercial at-sign
   "@".

      userinfo      = *( unreserved | escaped |
                         ";" | ":" | "&" | "=" | "+" | "$" | "," )
つまり、セミコロン、コロン、アンパサンド、イコール、プラス、ダラー、カンマ以外は使えないようだ。 いまいちescaped = % hex hexの場合がどうなるのか分からないが…。

とりあえずは、これら以外の記号は避けてActive Directoryにパスワード登録するのが良さそうだ。

Comments

Popular posts from this blog

#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法

PostgreSQLのOracle Foreign Data WrapperをWindowsで使う

Vaio Pro 11/13用のサードパーティーのACアダプター