質問: プロキシはどのようにして設定するのですか?
回答: プロキシの設定にはいくつかの方法があります。
最初の方法は、プロキシ情報を指定するシステムプロパティを設定する方法です。
これを行うには、Java を起動する際に以下のオプションをコマンドラインに追加します。
-Dhttp.proxyHost=proxy.mycompany.com -Dhttp.proxyPort=80 -Dhttp.proxyUser=myusername -Dhttp.proxyPassword=mypassword
2つめの方法は、Java 1.4.xでの話ですが、Authenticator を設定する方法です。
以下のようにしてコードレベルでシステムプロパティを設定することもできます。
System.setProperty("http.proxyHost","192.168.100.14");
System.setProperty("http.proxyPort","4480");この方法は、proxy plus 等のようなプロキシアプリケーションを使用する人のためのものです。
質問: プロキシサポートに関して警告や経験則などはありますか?
回答: Java の現在のリリースは、基本認証を使用するプロキシサーバしかサポートしていません。nutshell ではユーザ名とパスワードが base64 でエンコードされて、http リクエストのヘッダに追加されます。詳細は [http://www.kbcafe.com/articles/HowTo.Base64.pdf How to Base-64 (Base-64 の仕方)] をご覧下さい。
WindowsのJava 1.4.2では、SunはNTLM認証のサポートを追加したようです。詳細は Enhancements and Changes in Java 2 SE Version 1.4.2 (Java 2 SE バージョン 1.4.2 における機能強化と変更) をご覧下さい。
NTLM 認証は一般的に Microsoft Proxy Server で使用されます。サードパーティ製ソフトウェアを使用せずに、Java の以前のリリースのもとで直接 NTLM 認証を使用するのは不可能です。(無駄な時間を過ごさないで下さい)。
Microsoft Proxy Server に関する問題の詳細はこちらをご覧下さい。Unofficial Java Web Start/JNLP FAQ (アンオフィシャルな Java Web Start/JNLP FAQ)
NTLM の技術的な議論についてはこちらをご覧下さい。The NTLM Authentication Protocol (NTLM 認証プロトコル)。
現在のところ、NTLM サポートに関しては Jakarta Commons HttpClient を使用することをお勧めします。