Spec-Zone.ru › OpenJDK 17

Класс SSLServerSocket

java.lang.Object
java.net.ServerSocket
javax.net.ssl.SSLServerSocket
Все реализованные интерфейсы:
Closeable, AutoCloseable
public abstract class SSLServerSocket extends ServerSocket
Этот класс расширяет ServerSocket и предоставляет защищённые сокеты сервера, использующие протоколы, такие как Secure Sockets Layer (SSL) или Transport Layer Security (TLS).

Экземпляры этого класса обычно создаются с помощью SSLServerSocketFactory. Основная функция SSLServerSocket — создание SSLSocket путём установления соединений.

SSLServerSocket содержит несколько данных состояния, которые наследуются созданным SSLSocket при создании сокета. Это включает в себя разрешённые наборы шифров и протоколы, необходима ли проверка подлинности клиента и должен ли созданный сокет начать рукопожатие в режиме клиента или сервера. Состояние, унаследованное созданным SSLSocket, может быть переопределено путём вызова соответствующих методов.

С тех пор:
1.4
См. также:
  • ServerSocket
  • SSLSocket

Краткое описание конструкторов

SSLServerSocket()
SSLServerSocket(int port)
SSLServerSocket(int port, int backlog)
SSLServerSocket(int port, int backlog, InetAddress address)
Модификатор Конструктор Описание
protected
Используется только подклассами.
protected
Используется только подклассами.
protected
Используется только подклассами.
protected
Используется только подклассами.

Краткое описание методов

Модификатор и тип Метод Описание
abstract String[] getEnabledCipherSuites()
Возвращает список наборов шифров, которые в настоящее время разрешены для использования вновь принятыми соединениями.
abstract String[] getEnabledProtocols()
Возвращает имена протоколов, которые в настоящее время разрешены для использования вновь принятыми соединениями.
abstract boolean getEnableSessionCreation()
Возвращает true, если новые сеансы SSL могут быть созданы сокетами, созданными из этого сокета сервера.
abstract boolean getNeedClientAuth()
Возвращает true, если проверка подлинности клиента будет требоваться при вновь созданных соединениях серверного режима SSLSocket.
SSLParameters getSSLParameters()
Возвращает SSLParameters, действующие для вновь принятых соединений.
abstract String[] getSupportedCipherSuites()
Возвращает имена наборов шифров, которые можно включить для использования в SSL-соединении.
abstract String[] getSupportedProtocols()
Возвращает имена протоколов, которые можно включить для использования.
abstract boolean getUseClientMode()
Возвращает true, если принятые соединения будут в режиме SSL клиента.
abstract boolean getWantClientAuth()
Возвращает true, если проверка подлинности клиента будет запрошена при вновь принятых соединениях серверного режима.
abstract void setEnabledCipherSuites(String[] suites)
Устанавливает наборы шифров, разрешённых для использования принятыми соединениями.
abstract void setEnabledProtocols(String[] protocols)
Определяет, какие конкретные протоколы разрешены для использования принятыми соединениями.
abstract void setEnableSessionCreation(boolean flag)
Определяет, могут ли быть созданы новые сеансы SSL сокетами, созданными из этого сокета сервера.
abstract void setNeedClientAuth(boolean need)
Определяет, будут ли вновь принятые соединения серверного режима изначально настроены на требование проверки подлинности клиента.
void setSSLParameters(SSLParameters params)
Применяет SSLParameters к вновь принятым соединениям.
abstract void setUseClientMode(boolean mode)
Определяет, будут ли принятые соединения в (по умолчанию) режиме SSL сервера или режиме SSL клиента.
abstract void setWantClientAuth(boolean want)
Определяет, будут ли вновь принятые соединения серверного режима изначально настроены на запрос проверки подлинности клиента.

Методы, объявленные в классе java.net.ServerSocket

accept, bind, bind, close, getChannel, getInetAddress, getLocalPort, getLocalSocketAddress, getOption, getReceiveBufferSize, getReuseAddress, getSoTimeout, implAccept, isBound, isClosed, setOption, setPerformancePreferences, setReceiveBufferSize, setReuseAddress, setSocketFactory, setSoTimeout, supportedOptions, toString

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

SSLServerSocket

protected SSLServerSocket() throws IOException
Используется только подклассами.

Создаёт неуказанный TCP-сокет сервера с использованием контекста аутентификации по умолчанию.

Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода

SSLServerSocket

protected SSLServerSocket(int port) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту с использованием контекста аутентификации по умолчанию. Максимальное число подключений в очереди по умолчанию равно пяти соединениям, которые в очереди, прежде чем система начнёт отклонять новые подключения.

Номер порта 0 создаёт сокет на любом свободном порту.

Если существует менеджер безопасности, его метод checkListen вызывается с аргументом port для обеспечения разрешения операции. Это может привести к SecurityException.

Параметры:
port - порт для прослушивания
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IllegalArgumentException - если параметр порта находится вне заданного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.
См. также:
  • SecurityManager.checkListen(int)

SSLServerSocket

protected SSLServerSocket(int port, int backlog) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту с использованием контекста аутентификации по умолчанию и заданной очередью подключений.

Номер порта 0 создаёт сокет на любом свободном порту.

Аргумент backlog — это запрашиваемая максимальная длина очереди ожидающих подключений к сокету. Его точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще проигнорировать этот параметр. Предоставленное значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться специфичный для реализации по умолчанию.

Если существует менеджер безопасности, его метод checkListen вызывается с аргументом port для обеспечения разрешения операции. Это может привести к SecurityException.

Параметры:
port - порт для прослушивания
backlog - запрашиваемая максимальная длина очереди входящих подключений.
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IllegalArgumentException - если параметр порта находится вне заданного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.
См. также:
  • SecurityManager.checkListen(int)

SSLServerSocket

protected SSLServerSocket(int port, int backlog, InetAddress address) throws IOException
Используется только подклассами.

Создаёт TCP-сокет сервера на порту с использованием контекста аутентификации по умолчанию, заданной очередью подключений и определённым сетевым интерфейсом. Этот конструктор используется на многоадресных хостах, таких как те, которые используются для межсетевых экранов или в качестве маршрутизаторов, для управления тем, через какой интерфейс предоставляется сетевая служба.

Если существует менеджер безопасности, его метод checkListen вызывается с аргументом port для обеспечения разрешения операции. Это может привести к SecurityException.

Номер порта 0 создаёт сокет на любом свободном порту.

Аргумент backlog — это запрашиваемая максимальная длина очереди ожидающих подключений к сокету. Его точное значение зависит от реализации. В частности, реализация может установить максимальную длину или вообще проигнорировать этот параметр. Предоставленное значение должно быть больше 0. Если оно меньше или равно 0, будет использоваться специфичный для реализации по умолчанию.

Если address равно null, принимаются подключения на все доступные локальные адреса.

Параметры:
port - порт для прослушивания
backlog - запрашиваемая максимальная длина очереди входящих подключений.
address - адрес сетевого интерфейса, через который будут приниматься подключения
Исключения:
IOException - если при создании сокета произошла ошибка ввода-вывода
SecurityException - если менеджер безопасности существует и его метод checkListen не разрешает операцию.
IllegalArgumentException - если параметр порта находится вне заданного диапазона допустимых значений портов, который составляет от 0 до 65535 включительно.
См. также:
  • SecurityManager.checkListen(int)

Подробное описание методов

getEnabledCipherSuites

public abstract String[] getEnabledCipherSuites()
Возвращает список шифровальных наборов, которые в настоящее время включены для использования новыми подключёнными соединениями.

Если этот список не был явно изменён, система предоставляет по умолчанию, гарантируя минимальное качество обслуживания во всех включённых шифровальных наборах.

Обратите внимание, что даже если набор включён, он может никогда не использоваться. Это может произойти, если у узла нет поддержки, или его использование ограничено, или необходимые сертификаты (и закрытые ключи) для набора недоступны, или анонимный набор включён, но требуется аутентификация.

Возвращаемый массив включает шифровальные наборы из списка стандартных имён шифровальных наборов в разделе JSSE Cipher Suite Names документации по стандартным именам алгоритмов Java Cryptography Architecture и может также включать другие шифровальные наборы, поддерживаемые поставщиком.

Возвращает:
массив включённых шифровальных наборов
См. также:
  • getSupportedCipherSuites()
  • setEnabledCipherSuites(String [])

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String[] suites)
Устанавливает шифровальные наборы, включённые для использования подключёнными соединениями.

Шифровальные наборы должны быть перечислены в getSupportedCipherSuites() как поддерживаемые. После успешного вызова этого метода включены только наборы, перечисленные в параметре suites.

Наборы, требующие аутентификационной информации, которая не доступна в контексте аутентификации этого SSLServerSocket, в любом случае не будут использоваться, даже если они включены.

Обратите внимание, что стандартный список имён шифровальных наборов можно найти в разделе JSSE Cipher Suite Names документации по стандартным именам алгоритмов Java Cryptography Architecture. Поставщики могут поддерживать имена шифровальных наборов, не найденные в этом списке, или могут не использовать рекомендуемое имя для определённого шифровального набора.

SSLSocket значения, возвращаемые из accept() наследуют это значение.

Параметры:
suites - имена всех шифровальных наборов для включения
Исключения:
IllegalArgumentException - когда один или несколько шифров, указанных в параметре, не поддерживаются или когда параметр равен null.
См. также:
  • getSupportedCipherSuites()
  • getEnabledCipherSuites()

getSupportedCipherSuites

public abstract String[] getSupportedCipherSuites()
Возвращает имена шифровальных наборов, которые можно включить для использования в SSL-соединении.

Обычно только подмножество этих наборов будет включено по умолчанию, так как этот список может включать шифровальные наборы, которые не соответствуют требованиям качества обслуживания для этих значений по умолчанию. Такие шифровальные наборы полезны в специализированных приложениях.

Возвращаемый массив включает шифровальные наборы из списка стандартных имён шифровальных наборов в разделе JSSE Cipher Suite Names документации по стандартным именам алгоритмов Java Cryptography Architecture и может также включать другие шифровальные наборы, поддерживаемые поставщиком.

Возвращает:
массив имён шифровальных наборов
См. также:
  • getEnabledCipherSuites()
  • setEnabledCipherSuites(String [])

getSupportedProtocols

public abstract String[] getSupportedProtocols()
Возвращает имена протоколов, которые можно включить для использования.
Возвращает:
массив имён поддерживаемых протоколов
См. также:
  • getEnabledProtocols()
  • setEnabledProtocols(String [])

getEnabledProtocols

public abstract String[] getEnabledProtocols()
Возвращает имена протоколов, которые в настоящее время включены для использования новыми подключёнными соединениями.

Обратите внимание, что даже если протокол включён, он может никогда не использоваться. Это может произойти, если у узла нет поддержки протокола, или его использование ограничено, или нет включённых шифровальных наборов, поддерживаемых этим протоколом.

Возвращает:
массив имён протоколов
См. также:
  • getSupportedProtocols()
  • setEnabledProtocols(String [])

setEnabledProtocols

public abstract void setEnabledProtocols(String[] protocols)
Управляет протоколами, которые включены для использования принимаемыми подключениями.

Протоколы должны быть перечислены методом getSupportedProtocols() как поддерживаемые. После успешного вызова этого метода, для использования будут включены только протоколы, перечисленные в параметре protocols.

SSLSocket возвращаемые методом accept() наследуют это значение.

Parameters:
protocols - Имена всех протоколов, которые нужно включить.
Throws:
IllegalArgumentException - когда один или несколько протоколов, указанных в параметре, не поддерживаются или когда параметр protocols равен null.
See Also:
  • getEnabledProtocols()
  • getSupportedProtocols()

setNeedClientAuth

public abstract void setNeedClientAuth(boolean need)
Управляет тем, будет ли accept серверный режим SSLSockets изначально настроен на требование аутентификации клиента.

Настройка аутентификации клиента для сокета может быть следующей:

  • Требуется аутентификация клиента
  • Запрашивается аутентификация клиента
  • Аутентификация клиента не требуется

В отличие от setWantClientAuth(boolean), если параметр принятого сокета задан, а клиент отказывается предоставлять информацию об аутентификации, переговоры прекратятся, и подключение будет разорвано.

Вызов этого метода переопределяет любые предыдущие настройки, сделанные этим методом или setWantClientAuth(boolean).

Начальная унаследованная настройка может быть переопределена путем вызова SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Parameters:
need - установить в true, если требуется аутентификация клиента, или в false, если аутентификация клиента не требуется.
See Also:
  • getNeedClientAuth()
  • setWantClientAuth(boolean)
  • getWantClientAuth()
  • setUseClientMode(boolean)

getNeedClientAuth

public abstract boolean getNeedClientAuth()
Возвращает true, если аутентификация клиента будет требоваться для нового accept серверного режима SSLSocket.

Начальная унаследованная настройка может быть переопределена путем вызова SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Returns:
true, если аутентификация клиента требуется, или false, если аутентификация клиента не требуется.
See Also:
  • setNeedClientAuth(boolean)
  • setWantClientAuth(boolean)
  • getWantClientAuth()
  • setUseClientMode(boolean)

setWantClientAuth

public abstract void setWantClientAuth(boolean want)
Управляет тем, будет ли accept серверный режим SSLSockets изначально настроен на запрос аутентификации клиента.

Настройка аутентификации клиента для сокета может быть следующей:

  • Требуется аутентификация клиента
  • Запрашивается аутентификация клиента
  • Аутентификация клиента не требуется

В отличие от setNeedClientAuth(boolean), если параметр принятого сокета задан, а клиент отказывается предоставлять информацию об аутентификации, переговоры продолжатся.

Вызов этого метода переопределяет любые предыдущие настройки, сделанные этим методом или setNeedClientAuth(boolean).

Начальная унаследованная настройка может быть переопределена путем вызова SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Parameters:
want - установить в true, если запрашивается аутентификация клиента, или в false, если аутентификация клиента не требуется.
See Also:
  • getWantClientAuth()
  • setNeedClientAuth(boolean)
  • getNeedClientAuth()
  • setUseClientMode(boolean)

getWantClientAuth

public abstract boolean getWantClientAuth()
Возвращает true, если аутентификация клиента будет запрошена для новых подключений в серверном режиме.

Начальная унаследованная настройка может быть переопределена путем вызова SSLSocket.setNeedClientAuth(boolean) или SSLSocket.setWantClientAuth(boolean).

Returns:
true, если аутентификация клиента запрашивается, или false, если аутентификация клиента не требуется.
See Also:
  • setWantClientAuth(boolean)
  • setNeedClientAuth(boolean)
  • getNeedClientAuth()
  • setUseClientMode(boolean)

setUseClientMode

public abstract void setUseClientMode(boolean mode)
Управляет тем, будут ли принимаемые подключения в режиме (по умолчанию) SSL-сервера или режиме SSL-клиента.

Серверы обычно аутентифицируют себя, а клиенты не обязаны этого делать.

В редких случаях TCP-серверы должны действовать в режиме SSL-клиента при новых принимаемых подключениях. Например, клиенты FTP получают серверные сокеты и слушают их для обратных подключений от сервера. Клиент FTP использовал бы SSLServerSocket в режиме "клиента" для приема обратного подключения, в то время как сервер FTP использовал бы SSLSocket с отключенным режимом "клиента" для инициирования подключения. Во время результирующего рукопожатия могут быть повторно использованы существующие SSL-сессии.

SSLSocket возвращаемые из accept() наследуют эту настройку.

Parameters:
mode - true, если новые принимаемые подключения должны использовать режим SSL-клиента.
See Also:
  • getUseClientMode()

getUseClientMode

public abstract boolean getUseClientMode()
Возвращает true, если принимаемые подключения будут в режиме SSL-клиента.
Returns:
true, если подключение должно использовать режим SSL-клиента.
See Also:
  • setUseClientMode(boolean)

setEnableSessionCreation

public abstract void setEnableSessionCreation(boolean flag)
Управляет тем, могут ли сокеты, созданные из этого серверного сокета, устанавливать новые SSL-сессии.

SSLSocket возвращаемые из accept() наследуют эту настройку.

Parameters:
flag - true означает, что сессии могут быть созданы; это значение по умолчанию. false означает, что необходимо возобновить существующую сессию.
See Also:
  • getEnableSessionCreation()

getEnableSessionCreation

public abstract boolean getEnableSessionCreation()
Возвращает true, если сокеты, созданные из этого серверного сокета, могут устанавливать новые SSL-сессии.
Returns:
true означает, что сессии могут быть созданы; это значение по умолчанию. false означает, что необходимо возобновить существующую сессию
See Also:
  • setEnableSessionCreation(boolean)

getSSLParameters

public SSLParameters getSSLParameters()
Возвращает SSLParameters, действующие для вновь принятых подключений. Наборы шифров и протоколов возвращаемого SSLParameters всегда не равны null.
Returns:
SSLParameters, действующие для вновь принятых подключений
Since:
1.7
See Also:
  • setSSLParameters(SSLParameters)

setSSLParameters

public void setSSLParameters(SSLParameters params)
Применяет SSLParameters к новым принимаемым подключениям.

Это означает:

  • Если params.getCipherSuites() не равен null, setEnabledCipherSuites() вызывается с этим значением.
  • Если params.getProtocols() не равен null, setEnabledProtocols() вызывается с этим значением.
  • Если params.getNeedClientAuth() или params.getWantClientAuth() возвращают true, setNeedClientAuth(true) и setWantClientAuth(true) вызываются соответственно; в противном случае вызывается setWantClientAuth(false).
  • Если params.getServerNames() не равен null, сокет настраивает свои имена сервера с этим значением.
  • Если params.getSNIMatchers() не равен null, сокет настраивает свои SNI-совпадения с этим значением.
Parameters:
params - параметры
Throws:
IllegalArgumentException - если вызов setEnabledCipherSuites() или setEnabledProtocols() завершается неудачно
Since:
1.7
See Also:
  • getSSLParameters()

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/javax/net/ssl/SSLServerSocket.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API