JavaTM 2 Platform
Std. Ed. v1.3

java.net
クラス SocketPermission

java.lang.Object
  |
  +--java.security.Permission
        |
        +--java.net.SocketPermission
すべての実装インタフェース:
Guard, Serializable

public final class SocketPermission
extends Permission
implements Serializable

このクラスは、ソケットによるネットワークへのアクセスを表します。SocketPermission は、ホストの指定と、ホストに接続する方法を指定する一連のアクションから構成されます。ホストは、次のようにして指定します。

    host = (hostname | IPaddress)[:portrange]
    portrange = portnumber | -portnumber | portnumber-[portnumber]
 
host には、DNS 名、数値による IP アドレス、または 「localhost」(ローカルマシンの場合) のどれかを指定できます。DNS によるホスト指定では、ワイルドカード文字「*」を 1 つだけ使用できます。ただしワイルドカード文字は、「*.sun.com」のように、必ず左端に指定する必要があります。

port または portrange の指定は任意です。ポート番号 N について「N-」と指定した場合は、番号が N 以上のすべてのポートを表します。「-N」と指定した場合は、N 以下のすべてのポートを表します。

ホストへの接続方法には、次の種類があります。

 accept (受信)
 connect (接続)
 listen (待機)
 resolve (解決)
 
待機アクションは、ローカルホスト (localhost) で使用した場合にだけ意味があります。解決アクション (ホストと IP の間のネームサービス参照の解決) は、他の任意のアクションが指定された場合には暗黙的に指定されます。

SocketPermissions の作成およびその意味を例に示します。

   p1 = new SocketPermission("puffin.eng.sun.com:7777", "connect,accept");
 
あるコードに対して上のアクセス権が認められた場合、これはそのコードが、puffin.eng.sun.com のポート 7777 への接続、およびそのポート上での接続の受け入れを行うことを許可します。

同様に、

   p1 = new SocketPermission("puffin.eng.sun.com:7777", "connect,accept");
   p2 = new SocketPermission("localhost:1024-", "accept,connect,listen");
 
あるコードに対して上のアクセス権が認められた場合、そのコードは、ローカルホスト上の 1024 〜 65535 のポートに対して、接続の受け入れ、接続、待機を行うことを許可されます。

注: リモートホストからの接続を受け入れたり、リモートホストに接続するためのアクセス権をコードに許可するのは危険です。これは、悪意のあるコードを使うことにより、本来なら機密データへのアクセス権がない場合でも、機密データの転送や共有を容易に行えるようになるからです。

関連項目:
Permissions, SocketPermission, 直列化された形式

コンストラクタの概要
SocketPermission(String host, String action)
          指定されたアクションを持つ、新しい SocketPermission オブジェクトを作成します。
 
メソッドの概要
 boolean equals(Object obj)
          2 つの SocketPermission オブジェクトが等しいかどうかを判定します。
 String getActions()
          アクションの正式な文字列表現を返します。
 int hashCode()
          このオブジェクトのハッシュコード値を返します。
 boolean implies(Permission p)
          指定されたアクセス権が、このソケットアクセス権オブジェクトに含まれているかどうかを判定します。
 PermissionCollection newPermissionCollection()
          SocketPermission オブジェクトを格納するための、新しい PermissionCollection オブジェクトを返します。
 
クラス java.security.Permission から継承したメソッド
checkGuard, getName, toString
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

SocketPermission

public SocketPermission(String host,
                        String action)
指定されたアクションを持つ、新しい SocketPermission オブジェクトを作成します。ホスト名は、DNS 名か、数値による IP アドレスとして指定します。必要に応じて、ポート番号またはポート番号の範囲を指定できます。DNS 名または IP アドレスのあとに、コロンで区切って指定してください。

ローカルマシンを指定するには、host に「localhost」と指定してください。また、host を空の文字列のままにしておくと、localhost を指定したのと同じになります。

actions パラメータには、指定されたホストおよびポートに付与されるアクションのリストを、コンマで区切った形式で指定します。指定できるアクションは、connect、listen、accept、resolve、あるいはそれらの任意の組み合わせです。resolve は、それ以外の 3 つのうち任意のアクションが指定されたときにも、自動的に追加されます。

SocketPermission のインスタンス生成の例を次に示します。

    nr = new SocketPermission("www.catalog.com", "connect");
    nr = new SocketPermission("www.sun.com:80", "connect");
    nr = new SocketPermission("*.sun.com", "connect");
    nr = new SocketPermission("*.edu", "resolve");
    nr = new SocketPermission("204.160.241.0", "connect");
    nr = new SocketPermission("localhost:1024-65535", "listen");
    nr = new SocketPermission("204.160.241.0:1024-65535", "connect");
 
パラメータ:
host - コンピュータのホスト名または IP アドレス。必要に応じて、コロンのあとに、ポート番号またはポート番号の範囲を指定できる
action - アクションの文字列
メソッドの詳細

implies

public boolean implies(Permission p)
指定されたアクセス権が、このソケットアクセス権オブジェクトに含まれているかどうかを判定します。

具体的には、このメソッドは最初に、次の条件が true であることを確認します。これらの条件が 1 つでも true でない場合、このメソッドは false を返します。

次に、implies は、次の条件を順番に確認し、条件に該当する場合は、それぞれについて true を返します。

以上が 1 つも true でない場合、implies は false を返します。
オーバーライド:
クラス Permission 内の implies
パラメータ:
p - チェック対象のアクセス権
戻り値:
指定されたアクセス権がこのオブジェクトに含まれる場合は true、そうでない場合は false

equals

public boolean equals(Object obj)
2 つの SocketPermission オブジェクトが等しいかどうかを判定します。

オーバーライド:
クラス Permission 内の equals
パラメータ:
obj - このオブジェクトと等しいかどうかが判定されるオブジェクト
戻り値:
obj が SocketPermission であり、そのホスト名、ポート範囲、およびアクションが、この SocketPermission オブジェクトと等しい場合は true

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。
オーバーライド:
クラス Permission 内の hashCode
戻り値:
このオブジェクトのハッシュコード値

getActions

public String getActions()
アクションの正式な文字列表現を返します。現在のアクションを、connect、listen、accept、resolve の順序で返します。
オーバーライド:
クラス Permission 内の getActions
戻り値:
アクションの標準的な文字列表現

newPermissionCollection

public PermissionCollection newPermissionCollection()
SocketPermission オブジェクトを格納するための、新しい PermissionCollection オブジェクトを返します。

SocketPermission オブジェクトの格納形式は、同オブジェクトを任意の順番でコレクションに挿入でき、さらに、PermissionCollection の implies メソッドが効率的かつ矛盾のないように実装できる形式でなければなりません。

オーバーライド:
クラス Permission 内の newPermissionCollection
戻り値:
SocketPermissions を格納するのに適切な新しい PermissionCollection オブジェクト

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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