Java プラットフォーム 1.2

java.net
クラス Authenticator

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

public abstract class Authenticator
extends Object

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

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

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

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

コンストラクタの概要
Authenticator()
           
 
メソッドの概要
protected  PasswordAuthentication getPasswordAuthentication()
          パスワード認証が必要な場合に呼び出されます。
protected  int getRequestingPort()
           
protected  String getRequestingPrompt()
           
protected  String getRequestingProtocol()
          接続を要求しているプロトコルを返します。
protected  String getRequestingScheme()
           
protected  InetAddress getRequestingSite()
           
static PasswordAuthentication requestPasswordAuthentication(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 サーバからオーセンティケータを要求されたときに、ネットワークコードが使います。現在のオーセンティケータとしてすでに設定されている Authenticator クラスがある場合は、何も行いません。引数が null であり、オーセンティケータが設定されていない場合は、何もしないでメソッドがそのまま復帰します。

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

通常、このメソッドは、システムの起動時に 1 回だけ呼び出されます。

パラメータ:
a - オーセンティケータ
例外:
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 - 接続を要求しているプロトコル (@see java.net.Authenticator.getProtocol())
prompt - ユーザに表示されるプロンプト文字列
scheme - 認証方式
戻り値:
ユーザ名またはパスワード。取得できない場合は null
例外:
SecurityException - セキュリティマネージャが存在し、セキュリティマネージャの checkPermission メソッドが、パスワード認証要求を許可しない場合
関連項目:
SecurityManager.checkPermission(java.security.Permission), NetPermission

getRequestingSite

protected final InetAddress getRequestingSite()
戻り値:
許可を要求しているサイトの InetAddress。InetAddress を取得できない場合は null

getRequestingPort

protected final int getRequestingPort()
戻り値:
要求された接続に使うポート番号

getRequestingProtocol

protected final String getRequestingProtocol()
接続を要求しているプロトコルを返します。多くの場合、プロトコルは URL を基にしています。しかし将来の JDK では、たとえば、パスワードで保護された SOCKS5 ファイアウォールには「SOCKS」と指定するようになる予定です。
戻り値:
プロトコル。バージョン番号を表す「/version」が後ろに付くこともある
関連項目:
java.net.URL.getProtocol()

getRequestingPrompt

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

getRequestingScheme

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

getPasswordAuthentication

protected PasswordAuthentication getPasswordAuthentication()
パスワード認証が必要な場合に呼び出されます。サブクラスでは、デフォルトの実装をオーバーライドする必要があります。デフォルトの実装では null が返されます。
戻り値:
ユーザから収集した PasswordAuthentication。指定されていない場合は null

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.