|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.net.ServerSocket javax.net.ssl.SSLServerSocket
public abstract class SSLServerSocket
此類別擴展了 ServerSocket
並且提供使用像 Secure Sockets Layer (SSL) 或 Transport Layer Security (TLS) 協議的安全伺服器Socket。
此類別的實例通常使用 SSLServerSocketFactory
來創建。SSLServerSocket
的主要功能是通過接受
連接來創建 SSLSocket
。
SSLServerSocket
套件含了一些狀態資料,這些資料在創建Socket時由 SSLSocket
繼承。它們包括啟用的密碼套件和協議、客戶端驗證是否必需,以及創建的Socket應該以客戶端網要還是伺服器網要開始連繫交換。可以通過調用適當的方法覆寫由創建的 SSLSocket
所繼承的狀態。
ServerSocket
,
SSLSocket
建構子摘要 | |
---|---|
protected |
SSLServerSocket()
僅供子類別使用。 |
protected |
SSLServerSocket(int port)
僅供子類別使用。 |
protected |
SSLServerSocket(int port,
int backlog)
僅供子類別使用。 |
protected |
SSLServerSocket(int port,
int backlog,
InetAddress address)
僅供子類別使用。 |
方法摘要 | |
---|---|
abstract String[] |
getEnabledCipherSuites()
返回當前被啟用以供新接受的連接使用的密碼套件列表。 |
abstract String[] |
getEnabledProtocols()
返回當前新接受的連接啟用的協議的名稱。 |
abstract boolean |
getEnableSessionCreation()
如果新 SSL Session可以通過此伺服器Socket創建的Socket建立,則返回 true。 |
abstract boolean |
getNeedClientAuth()
如果新 accept 的伺服器網要的 SSLSocket 要求 客戶端驗證,則返回 true。 |
abstract String[] |
getSupportedCipherSuites()
返回可以啟用以供 SSL 連接使用的密碼套件的名稱。 |
abstract String[] |
getSupportedProtocols()
返回可以啟用的協議的名稱。 |
abstract boolean |
getUseClientMode()
如果接受的連接處於 SSL 客戶端網要,則返回 true。 |
abstract boolean |
getWantClientAuth()
如果新接受的伺服器網要的連接請求 客戶端驗證,則返回 true。 |
abstract void |
setEnabledCipherSuites(String[] suites)
把密碼套件設置為啟用的以供接受的連接使用。 |
abstract void |
setEnabledProtocols(String[] protocols)
控制啟用哪些特定的協議以供接受的連接使用。 |
abstract void |
setEnableSessionCreation(boolean flag)
控制新 SSL Session是否可以通過此伺服器Socket創建的Socket建立。 |
abstract void |
setNeedClientAuth(boolean need)
控制 接受的 伺服器網要 SSLSocket 是否將在開始時配置為要求 客戶端驗證。 |
abstract void |
setUseClientMode(boolean mode)
控制接受的連接是以(預設的)SSL 伺服器網要還是在 SSL 客戶端網要工作。 |
abstract void |
setWantClientAuth(boolean want)
控制 accept 伺服器網要的 SSLSockets 是否將在開始時配置為請求 客戶端驗證。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
建構子詳細資訊 |
---|
protected SSLServerSocket() throws IOException
使用預設的驗證上下文創建未綁定的 TCP 伺服器Socket。
IOException
- 如果創建Socket時發生 I/O 錯誤protected SSLServerSocket(int port) throws IOException
使用預設的驗證上下文在埠號上創建 TCP 伺服器Socket。連接 backlog 預設為最多可有五十個連接排隊,超過此數,系統將拒絕新的連接請求。
port
- 偵聽的埠號
IOException
- 當創建Socket時出現 I/O 錯誤protected SSLServerSocket(int port, int backlog) throws IOException
使用預設的驗證上下文和指定的連接 backlog 在埠號上創建 TCP 伺服器Socket。
port
- 偵聽的埠號號backlog
- 在系統應該開始拒絕新的請求前可以掛起的連接數
IOException
- 如果創建Socket時出現 I/O 錯誤protected SSLServerSocket(int port, int backlog, InetAddress address) throws IOException
使用預設的驗證上下文、指定的連接 backlog 和指定的網路介面在埠號上創建 TCP 伺服器Socket。此建構子用在多宿主機(像那些用作防火牆或路由器的主機)上以控制通過哪一個介面提供網路服務。
port
- 偵聽的埠號號backlog
- 在系統應該開始拒絕新的請求前可以掛起的連接數address
- 網路介面的位址,通過此位址接受連接
IOException
- 如果創建Socket時出現 I/O 錯誤方法詳細資訊 |
---|
public abstract String[] getEnabledCipherSuites()
如果沒有顯式修改此列表,則系統提供的預設值在所有啟用的密碼套件中保證最低的服務質量。
實際上不使用啟用的密碼套件有多個原因。例如: 伺服器Socket可能沒有適當的私鑰供它使用或者密碼套件可能是匿名的,阻止使用客戶端驗證,而伺服器Socket已經被告知需要那種驗證。
getSupportedCipherSuites()
,
setEnabledCipherSuites(String [])
public abstract void setEnabledCipherSuites(String[] suites)
這些密碼套件必須已經由 getSupportedCipherSuites() 作為支持套件列出。在成功調用此方法之後,只有在 suites
參數中列出的套件才會被啟用以供連接使用。
對於需要驗證資訊但這些資訊在此 ServerSocket 的驗證上下文中不存在的套件,即使已經啟用,任何情況下也不會使用它。
從 accept()
返回的 SSLSocket
繼承此設置。
suites
- 要啟用的所有密碼套件名稱
IllegalArgumentException
- 當一個或多個由參數命名的密碼套件不被支持時,或參數為 null 時。getSupportedCipherSuites()
,
getEnabledCipherSuites()
public abstract String[] getSupportedCipherSuites()
通常,因為此列表可能包括無法滿足預設服務質量要求的密碼套件,所以預設情況下實際啟動的是這些密碼套件的子集。這種密碼套件在專門的應用程序中才能有用。
getEnabledCipherSuites()
,
setEnabledCipherSuites(String [])
public abstract String[] getSupportedProtocols()
getEnabledProtocols()
,
setEnabledProtocols(String [])
public abstract String[] getEnabledProtocols()
getSupportedProtocols()
,
setEnabledProtocols(String [])
public abstract void setEnabledProtocols(String[] protocols)
該協議必須已經由 getSupportedProtocols() 將其作為受支持的協議列出。在成功調用此方法之後,僅啟用了在 protocols
參數中列出的協議以便使用。
從 accept()
返回的 SSLSocket
繼承此設置。
protocols
- 要啟用的所有協議的名稱。
IllegalArgumentException
- 當一個或多個由參數命名的協議不受支持時,或 protocols 參數為 null時。getEnabledProtocols()
,
getSupportedProtocols()
public abstract void setNeedClientAuth(boolean need)
接受的
伺服器網要 SSLSocket
是否將在開始時配置為要求 客戶端驗證。
Socket的客戶端驗證設置是下面的其中之一:
與 setWantClientAuth(boolean)
不同,如果設置了接受的Socket的選項並且客戶端選擇不提供關於自己的驗證資訊,協商將會停止且連接將被終止。
調用此方法會覆寫由此方法或 setWantClientAuth(boolean)
以前所做的任何設置。
最初繼承的設置可以通過調用 SSLSocket.setNeedClientAuth(boolean)
或 SSLSocket.setWantClientAuth(boolean)
來覆寫。
need
- 如果要求進行客戶端驗證,則設置為 true;如果不需要客戶端驗證,則設置為 false。getNeedClientAuth()
,
setWantClientAuth(boolean)
,
getWantClientAuth()
,
setUseClientMode(boolean)
public abstract boolean getNeedClientAuth()
accept
的伺服器網要的 SSLSocket
要求 客戶端驗證,則返回 true。
最初繼承的設置可以通過調用 SSLSocket.setNeedClientAuth(boolean)
或 SSLSocket.setWantClientAuth(boolean)
來覆寫。
setNeedClientAuth(boolean)
,
setWantClientAuth(boolean)
,
getWantClientAuth()
,
setUseClientMode(boolean)
public abstract void setWantClientAuth(boolean want)
accept
伺服器網要的 SSLSockets
是否將在開始時配置為請求 客戶端驗證。
Socket的客戶端驗證設置是下面的其中之一:
與 setNeedClientAuth(boolean)
不同,如果設置了接受的Socket的選項並且客戶端選擇不提供關於自己的驗證資訊,則協商將會繼續。
調用此方法會覆寫由此方法或 setNeedClientAuth(boolean)
以前所做的任何設置。
最初繼承的設置可以通過調用 SSLSocket.setNeedClientAuth(boolean)
或 SSLSocket.setWantClientAuth(boolean)
來覆寫。
want
- 如果請求進行客戶端驗證,則設置為 true;如果不需要客戶端驗證,則設置為 false。getWantClientAuth()
,
setNeedClientAuth(boolean)
,
getNeedClientAuth()
,
setUseClientMode(boolean)
public abstract boolean getWantClientAuth()
最初繼承的設置可以通過調用 SSLSocket.setNeedClientAuth(boolean)
或 SSLSocket.setWantClientAuth(boolean)
來覆寫。
setWantClientAuth(boolean)
,
setNeedClientAuth(boolean)
,
getNeedClientAuth()
,
setUseClientMode(boolean)
public abstract void setUseClientMode(boolean mode)
伺服器通常對其自己進行驗證,不要求客戶端也這麼做。
有時,TCP 伺服器需要以SSL 客戶端網要處理新接受的連接,但這種情況比較少見。例如,FTP 客戶端在獲得伺服器Socket的同時偵聽是否有來自伺服器的反向連接。FTP 客戶端將使用 "client" 網要的 SSLServerSocket 來接受反向的連接,而 FTP 伺服器使用禁止 "client" 網要的 SSLSocket 來啟動連接。在聯絡期間,可以重用已存在的 SSL Session。
從 accept()
返回的 SSLSocket
繼承此設置。
mode
- 如果新接受的連接應該使用 SSL 客戶端網要,則此參數為 true。getUseClientMode()
public abstract boolean getUseClientMode()
setUseClientMode(boolean)
public abstract void setEnableSessionCreation(boolean flag)
從 accept()
返回的 SSLSocket
繼承此設置。
flag
- 為 true 時指示可以創建Session,這是預設的;為 false 時指示必須恢復現有的Session。getEnableSessionCreation()
public abstract boolean getEnableSessionCreation()
setEnableSessionCreation(boolean)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。