|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Objectjava.security.Permission
java.net.SocketPermission
public final class SocketPermission
このクラスは、ソケットによるネットワークへのアクセスを表します。SocketPermission は、ホストの指定と、ホストに接続する方法を指定する一連のアクションから構成されます。ホストは、次のようにして指定します。
host = (hostname | IPv4address | iPv6reference) [:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber]host には、DNS 名、数値による IP アドレス、または 「localhost」(ローカルマシンの場合) のどれかを指定できます。DNS によるホスト指定では、ワイルドカード文字「*」を 1 つだけ使用できます。ただしワイルドカード文字は、「*.sun.com」のように、必ず左端に指定する必要があります。
IPv6reference の形式は、「RFC 2732: Format for Literal IPv6 Addresses in URLs」で指定されている形式に従います。
ipv6reference = "[" IPv6address "]"たとえば、次のように SocketPermission インスタンスを構築できます。
String hostAddress = inetaddress.getHostAddress(); if (inetaddress instanceof Inet6Address) { sp = new SocketPermission("[" + hostAddress + "]:" + port, action); } else { sp = new SocketPermission(hostAddress + ":" + port, action); }または
String host = url.getHost(); sp = new SocketPermission(host + ":" + port, action);
リテラル IPv6 アドレスの「非圧縮形式」も有効です。
port または portrange の指定は任意です。ポート番号 N について「N-」と指定した場合は、番号が N 以上のすべてのポートを表します。「-N」と指定した場合は、N 以下のすべてのポートを表します。
ホストへの接続方法には、次の種類があります。
accept (受信) connect (接続) listen (待機) resolve (解決)待機アクションは、ローカルホスト (localhost) で使用した場合にだけ意味があります。解決アクションは、ほかの任意のアクションが指定された場合には暗黙的に指定されます。
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 |
コンストラクタの詳細 |
---|
public SocketPermission(String host, String action)
ローカルマシンを指定するには、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
- アクションの文字列メソッドの詳細 |
---|
public boolean implies(Permission p)
具体的には、このメソッドは最初に、次の条件が true であることを確認します。これらの条件が 1 つでも true でない場合、このメソッドは false を返します。
implies
は、次の条件を順番に確認し、条件に該当する場合は、それぞれについて true を返します。
implies
は false を返します。
Permission
内の implies
p
- チェック対象のアクセス権
public boolean equals(Object obj)
Permission
内の equals
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト
Object.hashCode()
,
Hashtable
public int hashCode()
Permission
内の hashCode
Object.equals(java.lang.Object)
,
Hashtable
public String getActions()
Permission
内の getActions
public PermissionCollection newPermissionCollection()
SocketPermission オブジェクトの格納形式は、同オブジェクトを任意の順番でコレクションに挿入でき、さらに、PermissionCollection の implies
メソッドが効率的かつ矛盾のないように実装できる形式でなければなりません。
Permission
内の newPermissionCollection
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。