JavaTM 2
Platform
Std. Ed. v1.4.0

java.net
クラス Authenticator

java.lang.Object
  |
  +--java.net.Authenticator

public abstract class Authenticator
extends Object

Authenticator クラスは、ネットワーク接続に必要な認証を取得するためのオブジェクトを表します。通常は、ユーザに情報の入力を求めることにより、認証を行います。

アプリケーションでこのクラスを使うには、サブクラスを作成し、SetDefault() を使ってシステムにサブクラスのインスタンスを登録します。認証が要求されると、システムはサブクラスのメソッド (getPasswordAuthentication など) を呼び出します。サブクラスのメソッドは、多数の継承されたメソッド (getRequesting で始まるメソッド) を使って、要求された認証について照会を行うことができます。そのあとで、ユーザに表示する適切なメッセージを形成できます。

認証を要求するメソッドはすべて、失敗に終わるデフォルト実装を持っています。

導入されたバージョン:
1.2
関連項目:
setDefault(java.net.Authenticator), getPasswordAuthentication()

コンストラクタの概要
Authenticator()
           
 
メソッドの概要
protected  PasswordAuthentication getPasswordAuthentication()
          パスワード認証が必要な場合に呼び出されます。
protected  String getRequestingHost()
          認証を要求しているサイトまたはプロキシの hostname を取得します。
protected  int getRequestingPort()
          要求された接続に使うポート番号を取得します。
protected  String getRequestingPrompt()
          要求者が入力したプロンプト文字列を取得します。
protected  String getRequestingProtocol()
          接続を要求しているプロトコルを返します。
protected  String getRequestingScheme()
          要求者が使用している方式 (たとえば、HTTP ファイアウォールの場合は HTTP 方式)
protected  InetAddress getRequestingSite()
          許可を要求しているサイトの InetAddress を取得します。
static PasswordAuthentication requestPasswordAuthentication(InetAddress addr, int port, String protocol, String prompt, String scheme)
          システムに登録されているオーセンティケータに、パスワードを要求します。
static PasswordAuthentication requestPasswordAuthentication(String host, InetAddress addr, int port, String protocol, String prompt, String scheme)
          システムに登録されているオーセンティケータにパスワードを要求します。
static void setDefault(Authenticator a)
          オーセンティケータを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Authenticator

public Authenticator()
メソッドの詳細

setDefault

public static void setDefault(Authenticator a)
オーセンティケータを設定します。このオーセンティケータは、プロキシサーバまたは HTTP サーバからオーセンティケータを要求されたときに、ネットワークコードが使います。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkPermission メソッドが、アクセス権 NetPermission("setDefaultAuthenticator") を指定して呼び出されます。この結果、java.lang.SecurityException になることがあります。

パラメータ:
a - 設定されるオーセンティケータ。null の場合、以前に設定されたオーセンティケータはすべて削除される
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが、デフォルトのオーセンティケータを設定することを許可しない場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), NetPermission

requestPasswordAuthentication

public static PasswordAuthentication requestPasswordAuthentication(InetAddress addr,
                                                                   int port,
                                                                   String protocol,
                                                                   String prompt,
                                                                   String scheme)
システムに登録されているオーセンティケータに、パスワードを要求します。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkPermission メソッドが、アクセス権 NetPermission("requestPasswordAuthentication") を指定して呼び出されます。この結果、java.lang.SecurityException になることがあります。

パラメータ:
addr - 許可を要求しているサイトの InetAddress。InetAddress が不明の場合は null
port - 要求された接続に使うポート番号
protocol - 接続を要求しているプロトコル (getRequestingProtocol())
prompt - ユーザに表示されるプロンプト文字列
scheme - 認証方式
戻り値:
ユーザ名またはパスワード。取得できない場合は null
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが、パスワード認証要求を許可しない場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), NetPermission

requestPasswordAuthentication

public static PasswordAuthentication requestPasswordAuthentication(String host,
                                                                   InetAddress addr,
                                                                   int port,
                                                                   String protocol,
                                                                   String prompt,
                                                                   String scheme)
システムに登録されているオーセンティケータにパスワードを要求します。InetAddress が使用できない場合はホスト名が提供されるので、この方法でパスワードを要求することをお勧めします。

セキュリティマネージャが存在する場合、最初にセキュリティマネージャの checkPermission メソッドが、アクセス権 NetPermission("requestPasswordAuthentication") を指定して呼び出されます。この結果、java.lang.SecurityException になることがあります。

パラメータ:
host - 認証を要求しているサイトのホスト名
addr - 認証を要求しているサイトの InetAddress。InetAddress が不明の場合は null
port - 要求された接続に使うポート番号
protocol - 接続を要求しているプロトコル (getRequestingProtocol())
prompt - 認証領域を識別する、ユーザに表示されるプロンプト文字列
scheme - 認証方式
戻り値:
ユーザ名またはパスワード。取得できない場合は null
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが、パスワード認証要求を許可しない場合
導入されたバージョン:
1.4
関連項目:
SecurityManager.checkPermission(java.security.Permission), NetPermission

getRequestingHost

protected final String getRequestingHost()
認証を要求しているサイトまたはプロキシの hostname を取得します。hostname が使用できない場合は null が返されます。

戻り値:
認証を要求している接続のホスト名。ホスト名が使用できない場合は null
導入されたバージョン:
1.4

getRequestingSite

protected final InetAddress getRequestingSite()
許可を要求しているサイトの InetAddress を取得します。InetAddress が使用できない場合は null が返されます。

戻り値:
許可を要求しているサイトの InetAddress。InetAddress が使用できない場合は null

getRequestingPort

protected final int getRequestingPort()
要求された接続に使うポート番号を取得します。

戻り値:
要求された接続のポート番号を示す int

getRequestingProtocol

protected final String getRequestingProtocol()
接続を要求しているプロトコルを返します。多くの場合、プロトコルは URL を基にしています。しかし将来の SDK では、たとえば、パスワードで保護された SOCKS5 ファイアウォールには「SOCKS」と指定するようになる予定です。

戻り値:
プロトコル。バージョン番号を表す「/version」が後ろに付くこともある
関連項目:
URL.getProtocol()

getRequestingPrompt

protected final String getRequestingPrompt()
要求者が入力したプロンプト文字列を取得します。

戻り値:
要求者が入力したプロンプト文字列 (http 要求のための領域)

getRequestingScheme

protected final String getRequestingScheme()
要求者が使用している方式 (たとえば、HTTP ファイアウォールの場合は HTTP 方式)

戻り値:
要求者が使用している方式

getPasswordAuthentication

protected PasswordAuthentication getPasswordAuthentication()
パスワード認証が必要な場合に呼び出されます。サブクラスでは、デフォルトの実装をオーバーライドする必要があります。デフォルトの実装では null が返されます。

戻り値:
ユーザから収集した PasswordAuthentication。指定されていない場合は null

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.