JavaTM Platform
Standard Ed. 6

java.net
클래스 SocketPermission

java.lang.Object 
  상위를 확장 java.security.Permission 
      상위를 확장 java.net.SocketPermission
모든 구현된 인터페이스:
Serializable , Guard


public final class SocketPermission
extends Permission
implements Serializable

이 클래스는, 소켓을 통한 네트워크에의 액세스권을 나타냅니다. 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
resolve
 
listen 액션은, 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
 

생성자 의 상세

SocketPermission

public SocketPermission(String  host,
                        String  action)
지정된 액션을 가지는 새로운 SocketPermission 객체를 생성합니다. 호스트는, DNS 명, 수치에 의한 IP 주소의 어느쪽이든으로 나타내집니다. 옵션으로, 포트 또는 포트 범위도 지정할 수 있습니다 (DNS 명 또는 IP 주소와의 사이는 구두점으로 단락짓는다).  

로컬 머신을 지정하려면 , 「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 - 액션의 캐릭터 라인
메소드의 상세

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. 다만,obj 에 액션 「resolve」 밖에 포함되지 않은 경우는, 비교시에 포트 범위가 무시되는
관련 항목:
Object.hashCode() , Hashtable

hashCode

public int hashCode()
이 객체의 해시 코드값를 돌려줍니다.

정의:
클래스 Permission 내의 hashCode
반환값:
이 객체의 해시 코드값
관련 항목:
Object.equals(java.lang.Object) , Hashtable

getActions

public String  getActions()
액션의 정규의 캐릭터 라인 표현을 돌려줍니다. 현재의 액션을, 항상 다음의 순서로 돌려줍니다. connect, listen, accept, resolve.

정의:
클래스 Permission 내의 getActions
반환값:
액션의 정규의 캐릭터 라인 표현

newPermissionCollection

public PermissionCollection  newPermissionCollection()
SocketPermission 객체를 포함하기 위한 , 새로운 PermissionCollection 객체를 돌려줍니다.  

SocketPermission 객체의 포함 형식은, 동객체를 임의의 차례로 컬렉션에 삽입할 수 있어 게다가 PermissionCollection 의 implies 메소드가 효율적 또한 모순이 없게 구현할 수 있는 형식이 아니면 안됩니다.

오버라이드(override):
클래스 Permission 내의 newPermissionCollection
반환값:
SocketPermissions 를 포함하는데 적절한 새로운 PermissionCollection 객체

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.