public final class SocketPermission extends Permission implements Serializable
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 resolve「listen」アクションは、「localhost」とともに使用した場合だけ意味を持ちます。「resolve」アクションは、ほかのアクションのいずれかが存在する場合には暗黙的に指定されます。アクション「resolve」は、ホスト/IP のネームサービス検索を指します。
アクション文字列は、処理の前に小文字に変換されます。
SocketPermissions の作成およびその意味を例に示します。
p1 = new SocketPermission("puffin.eng.sun.com:7777", "connect,accept");あるコードに対して上のアクセス権が認められた場合、これはそのコードが、
puffin.eng.sun.com
のポート 7777 への接続、およびそのポート上での接続の受け入れを行うことを許可します。
同様に、
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 オブジェクトを返します。
|
checkGuard, getName, toString
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 を返します。implies
、クラス: Permission
p
- チェック対象のアクセス権。public boolean equals(Object obj)
equals
、クラス: Permission
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。Object.hashCode()
, HashMap
public int hashCode()
hashCode
、クラス: Permission
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
public String getActions()
getActions
、クラス: Permission
public PermissionCollection newPermissionCollection()
SocketPermission オブジェクトの格納形式は、同オブジェクトを任意の順番でコレクションに挿入でき、さらに、PermissionCollection の implies
メソッドが効率的かつ矛盾のないように実装できる形式である必要があります。
newPermissionCollection
、クラス: Permission
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.