|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.security.Permission java.net.SocketPermission
public final class SocketPermission
此類別表示通過Socket對網路的存取。SocketPermission 由主機規範和一組指定到該主機的連接方式的“動作”組成。主機被指定為
host = (hostname | IPv4address | iPv6reference) [:portrange] portrange = portnumber | -portnumber | portnumber-[portnumber]主機被表達為 DNS 名稱、數字 IP 位址或“本地主機”(對於本地機器而言)。在 DNS 名稱主機規範中,可能包括通配符 "*"。如果包括,則其必須位於最左邊的位置,如 "*.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“偵聽”動作僅在與“本地主機”一起使用時才有意義。任何其他動作出現時,都會暗含“解析”動作。“解析”動作指的是主機/ip 名稱服務尋找。
作為 SocketPermission 的創建和含義的範例,注意如果將以下權限:
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)
檢查兩個 SocketPermission 物件的相等性。 |
String |
getActions()
返回動作的規範化字元串表示形式。 |
int |
hashCode()
返回此物件的雜湊碼值。 |
boolean |
implies(Permission p)
檢查此Socket權限物件是否“暗含”指定的權限。 |
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。還要注意:空的 host String ("") 等效於“本地主機”。
action 參數包含指定主機(和埠號)獲准的以逗號分隔的動作列表。可能的動作為“連接”、“偵聽”、“接受”、“解析”或這些動作的任意組合。當指定了其他三個動作時,會自動添加“解析”。
以下是 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 位址,可以選擇是否包括後跟埠號或埠號範圍的冒號。actions
- 動作字元串。方法詳細資訊 |
---|
public boolean implies(Permission p)
更明確地說,此方法首先確保以下情況全部為 true(如果其中任意一項不為 true,則返回 false):
implies
將按順序檢查以下每一項,如果所述條件為 true,則為每一項返回 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. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。