クラスSocketPermission

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

@Deprecated(since="26", forRemoval=true)public final class SocketPermission extends Permission Implement Serializable
削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
この権限は、セキュリティ・マネージャがサポートされなくなったため、リソースへのアクセスの制御には使用できません。
このクラスは、ソケットを通じたネットワークへのアクセス権を表します。 SocketPermissionは、ホストの指定と、そのホストへの接続方法を指定したアクションの集合からなります。 ホストは、次のように指定します。
    host = (hostname | IPv4address | iPv6reference) [:portrange]
    portrange = portnumber | -portnumber | portnumber-[portnumber]
 
ホストは、DNS名、数値によるIPアドレス、localhost (ローカル・マシンの場合)のどれかで表されます。 DNS名によるホストの指定では、ワイルドカード「*」を1つだけ使うことができます。 含まれる場合は、"*.example.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);
    }
 
or
    String host = url.getHost();
    sp = new SocketPermission(host + ":" + port, action);
 

IPv6リテラル・アドレスの非圧縮形式も有効です。

ポートまたはポート範囲は省略可能です。 ポートを「N-」(Nはポート番号)という形で指定した場合は、ポート番号Nとそれより上のすべてのポート番号を表します。また、「-N」という形で指定した場合は、ポート番号Nとそれより下のすべてのポート番号を表します。 特殊なポート値0は、一時的なポートの範囲全体を指します。 これは固定のポート範囲です。システムではこの範囲から動的ポートを割り当てることができます。 実際の範囲はシステムによって異なります。

ホストへの接続方法としては、次のどれかを指定できます。

 accept
 connect
 listen
 resolve
 
「listen」アクションは、「localhost」とともに使用した場合だけ意味を持ち、特定のポートにバインドする機能を意味します。 「resolve」アクションは、ほかのアクションのいずれかが存在する場合には暗黙的に指定されます。 アクション「resolve」は、ホスト/IPのネーム・サービス検索を指します。

アクション文字列は、処理の前に小文字に変換されます。

導入されたバージョン:
1.2
外部仕様
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    指定されたアクションを持つ新しいSocketPermissionオブジェクトを生成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    2つのSocketPermissionオブジェクトが等しいかどうかを判定します。
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    アクションの正規の文字列表現を返します。
    int
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    このオブジェクトのハッシュ・コード値を返します。
    boolean
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    指定されたアクセス権が、このソケット・アクセス権オブジェクトに含まれているかどうかを判定します。
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    SocketPermissionオブジェクトを格納するための、新しいPermissionCollectionオブジェクトを返します。

    クラス Permissionで宣言されたメソッド

    checkGuard, getName, toString
    修飾子と型
    メソッド
    説明
    void
    アクセス権のガード・インタフェースを実装します。
    final String
    このPermissionの名前を返します。
    このPermissionを記述する文字列を返します。

    クラスオブジェクトで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • SocketPermission

      public SocketPermission(String host, String action)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      指定されたアクションを持つ新しいSocketPermissionオブジェクトを生成します。 ホストは、DNS名、数値によるIPアドレスのいずれかで表されます。 オプションで、ポートまたはポート範囲も指定できます(DNS名またはIPアドレスとの間はコロンで区切る)。

      ローカル・マシンを指定するには、「localhost」をhostとして使用します。 ノート: 空のhost文字列(「」)は、「localhost」と等価です。

      actionsパラメータには、指定されたホスト(および1つ以上のポート)に許可するアクションのカンマ区切りリストが含まれます。 指定可能なアクションは、「connect」、「listen」、「accept」、「resolve」、またはそれらの任意の組み合わせです。「resolve」は、ほかの3つのいずれかが指定された場合には自動的に追加されます。

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

         nr = new SocketPermission("www.example.com", "connect");
         nr = new SocketPermission("www.example.com:80", "connect");
         nr = new SocketPermission("*.example.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 - アクション文字列。
      スロー:
      NullPointerException - パラメータがnullの場合
      IllegalArgumentException - hostの形式が無効であるか、action文字列が空であるか不正であるか、または指定された可能性のあるアクション以外のアクションが含まれています
  • メソッドの詳細

    • implies

      public boolean implies(Permission p)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      指定されたアクセス権が、このソケット・アクセス権オブジェクトに含まれているかどうかを判定します。

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

      • pがSocketPermissionのインスタンスである。
      • pのアクションは、このオブジェクトのアクションの適切なサブセットである
      • pのポート範囲が、このポート範囲に収まる。 ノート: pにアクション「resolve」しか含まれていない場合、ポート範囲は無視される。
      次に、impliesは、次の条件を順番に確認し、条件に該当する場合は、それぞれについてtrueを返します。
      • このオブジェクトが単一のIPアドレスで初期化されている場合に、pのIPアドレスの1つが、このオブジェクトのIPアドレスと等しい。
      • このオブジェクトがワイルドカード・ドメイン(例: *.example.com)で、p正規名(名前に先行しない*)がこのオブジェクト標準ホスト名で終わる場合。 たとえば、*.example.comは*.foo.example.comのように指定します。
      • このオブジェクトが複数のIPアドレスでは初期化されている場合に、このオブジェクトのIPアドレスの1つが、pのIPアドレスの1つと等しい。
      • この(オブジェクトの)正式な名前が、pの正規の名前と等しい。
      以上が1つもtrueでない場合、impliesはfalseを返します。

      定義:
      implies、クラスPermission
      パラメータ:
      p - チェック対象のアクセス権。
      戻り値:
      指定されたアクセス権がこのオブジェクトに含まれる場合はtrue、そうでない場合はfalse。
    • equals

      public boolean equals(Object obj)
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      2つのSocketPermissionオブジェクトが等しいかどうかを判定します。
      定義:
      equals、クラスPermission
      パラメータ:
      obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      objがSocketPermissionであり、このSocketPermissionオブジェクトと同じホスト名、ポート範囲、およびアクションを持つ場合はtrue。 ただし、objにアクション「resolve」しか含まれていない場合は、比較時にポート範囲が無視されます。
      関連項目:
    • hashCode

      public int hashCode()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      このオブジェクトのハッシュ・コード値を返します。
      定義:
      hashCode、クラスPermission
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • getActions

      public String getActions()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      アクションの正規の文字列表現を返します。 現在のアクションを、常に次の順序で返します。connect、listen、accept、resolve。
      定義:
      getActions、クラスPermission
      戻り値:
      アクションの正規の文字列表現。
    • newPermissionCollection

      public PermissionCollection newPermissionCollection()
      削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
      SocketPermissionオブジェクトを格納するための、新しいPermissionCollectionオブジェクトを返します。

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

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