プロキシ構成では、次のトピックについて説明します。
Java コントロールパネルでは、[ネットワーク設定] サブパネルに次の 4 つのプロキシオプションがあります。
[ブラウザの設定を使用] を選択した場合、プロキシ情報は完全にブラウザを介して入力されます。Internet Explorer の場合は、[ツール]>[インターネット オプション] で [接続] タブを開き、[ローカル エリア ネットワーク (LAN) の設定] を選択します。Netscape の場合は、[編集] > [設定] で [カテゴリ] の下の [詳細] を選択して、[プロキシ] を選択します。この機能方法と、ブラウザを介して設定される 3 つのタイプの接続 (直接、手動、および自動) については、以下のセクションで説明します。
Java コントロールパネルで [プロキシサーバを使用] を選択した場合、2 つの選択肢があります。
[自動プロキシ設定スクリプトを使用] を選択した場合、FindProxyForURL(URL url)
という名前の JavaScript の位置を示す URL を入力しなければなりません。この JavaScript によって返されるプロキシサーバが URL に使用されます。このスクリプトに対するサポートは、以下の「自動プロキシ構成」で説明する内容と同じです。
直接接続ではプロキシを使用しません。モバイルユーザがモデムを介して会社に接続するような特定の状況では、イントラネット環境への直接接続が必要になります。これらの場合には、プロキシは使用すべきではありません。
ブラウザのプラットフォームが異なると、プロキシ情報を格納する方法も異なるため、プロキシ情報を取得する汎用的な方法はありません。ブラウザとプラットフォームの組み合わせ 2 種類によって、プロキシ情報を取得する方法を説明します。
Microsoft Internet Explorer: Internet Explorer では、プロキシ情報は Windows レジストリの同じキーセット内に格納されます。Java Plug-in と Java Web Start では、この情報をレジストリから直接抽出します。
Mozilla: Mozilla では、プロキシ情報をローカルマシンのユーザプロファイルディレクトリ内の設定ファイルに格納します。また、プロキシ情報を特定するための公開 API を利用できます。Java Plug-in では Mozilla の公開 API を使用し、Java Web Start では設定ファイルを読み取って解析し、プロキシ情報を取得します。
Netscape Navigator: Navigator では、プロキシ情報をローカルマシンのユーザプロファイルディレクトリ内の設定ファイルに格納します。Java Plug-in と Java Web Start では、このファイルを読み取って解析し、プロキシ情報を取得します。
Java Plug-in と Java Web Start では、プロキシ情報を起動時に取得します。Java Plug-in または Java Web Start の起動後にプロキシ設定を変更した場合、Java コンソールの p オプションを使用して、プロキシ情報を強制的に再ロードします。Java Web Start はアプリケーションごとに再起動するため、以後の起動時には自動的に新しいプロキシ情報が使用されます。
Internet Explorer: Java Plug-in と Java Web Start では、このプロトコルに関連付けられたプロキシサーバおよびポート設定を認識およびサポートします。IE は、プロキシサーババイパスリスト内のさまざまな構文をサポートします。以下にその構文を示します。
たとえば、プロキシサーババイパスリストに「121.141.23.5;*.eng;http://*.com」を指定すると、次の場合、常にブラウザはプロキシをバイパスします。
現在のところ、Java Plug-in と Java Web Start でサポートするのは、IE のプロキシサーババイパスリストの最初の 2 つの構文です。さらに、IE では、プロキシサーババイパスリストを使用しない、ローカル (イントラネット) アドレス用プロキシサーバのバイパスもサポートされます。Java Plug-in と Java Web Start では、URL ホスト名がプレーンな (つまり、ホスト名に「.」が含まれない) 場合、プロキシサーバをバイパスすることにより、このオプションをサポートします。
Mozilla と Netscape Navigator: Java Plug-in と Java Web Start では、このプロトコルに関連付けられたプロキシサーバおよびポート設定を認識およびサポートします。たとえば、Mozilla のプロキシサーバパイパスリストに「.eng,.sun.com」 を指定すると、URL ホスト名が「.eng」または「.sun.com」で終わる場合、常にプロキシがバイパスされます。Java Plug-in と Java Web Start では、Mozilla と Navigator のプロキシサーババイパスリスト内で、この構文をフルサポートします。
使用するブラウザでの手動プロキシ構成の詳細は、ブラウザのユーザガイドを参照してください。
自動プロキシ構成はブラウザ内で、拡張子が .pac または .js の JavaScript ファイルを含む特定の URL を設定することでサポートされます。このファイルには、FindProxyForURL という関数が含まれます。この関数には、ブラウザが接続要求を受信するとき、どのプロキシサーバを使用するかを決定するロジックが含まれます。この関数は、特定のイントラネット環境で、システム管理者により記述されます。ブラウザは、起動時に JavaScript ファイルの URL を認識し、直接接続を使用してローカルマシンにダウンロードします。その後、新規接続を確立する必要がある場合、ブラウザは常に JavaScript ファイル内の FindProxyForURL JavaScript 関数を実行してプロキシ情報を取得し、接続を設定します。
Internet Explorer: 起動時に、Java Plug-in は、直接接続を使用して JavaScript ファイルをローカルマシンにダウンロードします。その後、接続の新規確立が必要になるたびに、FindProxyForURL
関数が実行され、Internet Explorer の JavaScript エンジンを使用してプロキシ情報の取得が行われます。
Mozilla/Netscape Navigator: 起動時に、Java Plug-in は、直接接続を使用して JavaScript ファイルをローカルマシンにダウンロードします。その後、接続の新規確立が必要になるたびに、FindProxyForURL
関数が実行され、Mozilla や Navigator の JavaScript エンジンを使用してプロキシ情報の取得が行われます。
Windows: 起動時に、Java Web Start は、直接接続を使用して JavaScript ファイルをローカルマシンにダウンロードします。その後、接続の新規確立が必要になるたびに、FindProxyForURL
関数が実行され、Internet Explorer の JavaScript エンジンを使用してプロキシ情報の取得が行われます。
Linux/Solaris: 起動時に、Java Web Start は、直接接続を使用して JavaScript ファイルをローカルマシンにダウンロードします。その後、接続の新規確立が必要になるたびに、FindProxyForURL
関数が解析され、もっとも適切な情報が推測されて、プロキシ情報の取得が行われます。
FindProxyForURL についてJavaScript エンジンについて、すべてのプラットフォームの Java Plug-in と、Windows 上の Java Web Start に対して、次の事項が当てはまります。
|
使用するブラウザでの自動プロキシ構成の詳細は、ブラウザのユーザガイドを参照してください。
java.net.ProxySelector
API指定されたホストのプロキシ設定を特定しなければならないことがあります。プロキシ設定を調べることで、適切なプロキシサーバを通じてホストに接続するためのコードをより適切に記述することができます。J2SE 5.0 では、プロキシ設定をサポートする新しい API として java.net.ProxySelector
があります。次は簡単なコードの例です。
private Proxy findProxy(URI uri)
{
try
{
ProxySelector selector = ProxySelector.getDefault();
List<Proxy> proxyList = selector.select(uri);
if (proxyList.size() > 1)
return proxyList.get(0);
}
catch (IllegalArgumentException e)
{
}
return Proxy.NO_PROXY;
}