|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.Permission java.net.SocketPermission
public final class SocketPermission
このクラスは、ソケットを通じたネットワークへのアクセス権を表します。SocketPermission は、ホストの指定と、そのホストへの接続方法を指定したアクションの集合からなります。ホストは、次のように指定します。
host = (hostname | IPv4address | iPv6reference) [:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber]ホストは、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 リテラルアドレスの「非圧縮形式」も有効です。
ポートまたはポート範囲は省略可能です。ポートを「N-」(N はポート番号) という形で指定した場合は、ポート番号 N とそれより上のすべてのポート番号を表します。また、「-N」という形で指定した場合は、ポート番号 N とそれより下のすべてのポート番号を表します。
ホストへの接続方法としては、次のどれかを指定できます。
accept connect listen resolvelisten アクションは、localhost とともに使用した場合だけ意味を持ちます。「resolve」アクションは、ほかのアクションのいずれかが存在する場合には暗黙的に指定されます。アクション「resolve」は、ホスト/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 |
コンストラクタの詳細 |
---|
public SocketPermission(String host, String action)
ローカルマシンを指定するには、「localhost」を host として使用します。注 -空の host 文字列 (「」) は、「localhost」と等価です。
actions パラメータには、指定されたホスト (および 1 つ以上のポート) に許可するアクションのコンマ区切りリストが含まれます。指定可能なアクションは、「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 Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。