Интерфейс GSSContext
public interface GSSContext
Этот интерфейс инкапсулирует контекст безопасности GSS-API и предоставляет сервисы безопасности, доступные в рамках этого контекста. Контексты безопасности устанавливаются между узлами с использованием локальных учетных данных. Может существовать несколько контекстов одновременно между парой узлов, используя тот же или другой набор учетных данных. Функции GSS-API работают независимо от базового транспортного протокола и полагаются на вызывающее приложение для транспортировки маркеров, генерируемых контекстом безопасности между узлами.
Если вызывающий объект создает контекст, используя экземпляр по умолчанию GSSManager, то механизм Kerberos v5 GSS-API гарантированно будет доступен для установления контекста. Этот механизм идентифицируется с помощью ОИД "1.2.840.113554.1.2.2" и определен в RFC 1964.
Перед началом фазы установления контекста инициатор контекста может запросить определенные характеристики желаемого контекста. Не все базовые механизмы поддерживают все характеристики, которые может желать вызывающий объект. После установления контекста вызывающий объект может проверить фактические характеристики и сервисы, предлагаемые этим контекстом, с помощью различных методов запроса. При использовании механизма Kerberos v5 GSS-API, предлагаемого экземпляром по умолчанию GSSManager, все необязательные сервисы будут доступны локально. К ним относятся взаимная аутентификация, делегирование учетных данных, защита конфиденциальности и целостности, а также обнаружение и упорядочение повторов сообщений.
Установление контекста происходит в цикле, где инициатор вызывает initSecContext, а акцептор вызывает acceptSecContext, пока контекст не будет установлен. В этом цикле методы initSecContext и acceptSecContext генерируют маркеры, которые приложение отправляет партнеру. Партнер передает любой такой маркер в качестве входных данных в свой метод acceptSecContext или initSecContext, в зависимости от ситуации.
Во время фазы установления контекста метод isProtReady может быть вызван для определения возможности использования контекста для операций с сообщениями wrap и getMIC. Это позволяет приложениям использовать операции с сообщениями в контекстах, которые еще не полностью установлены.
После установления контекста или возврата значения true методом isProtReady, можно вызывать методы запроса для определения фактических характеристик и сервисов установленного контекста. Приложение также может начать использовать методы с сообщениями wrap и getMIC для получения криптографических операций над данными, предоставленными приложением.
Когда контекст больше не нужен, приложение должно вызвать dispose для освобождения любых системных ресурсов, которые может использовать контекст.
Контекст безопасности обычно сохраняет информацию о последовательности и обнаружении повторов для обрабатываемых маркеров. Поэтому порядок, в котором маркеры представляются этому контексту для обработки, может быть важным. Также обратите внимание, что ни один из методов в этом интерфейсе не является синхронизированным. Поэтому не рекомендуется совместно использовать GSSContext между несколькими потоками, если не реализована синхронизация на уровне приложения.
Наконец, различные поставщики механизмов могут накладывать различные ограничения безопасности на использование контекстов GSS-API. Они будут задокументированы поставщиком механизма. Приложение должно убедиться, что у него есть соответствующие разрешения, если такие проверки выполняются на уровне механизма.
Пример кода ниже демонстрирует использование интерфейса GSSContext для инициализирующего узла. Представлены различные операции с объектом GSSContext, включая: создание объекта, установку желаемых флагов, установление контекста, запрос фактических флагов контекста, операции с сообщениями над данными приложения и, наконец, удаление контекста.
// Create a context using default credentials
// and the implementation specific default mechanism
GSSManager manager ...
GSSName targetName ...
GSSContext context = manager.createContext(targetName, null, null,
GSSContext.INDEFINITE_LIFETIME);
// set desired context options prior to context establishment
context.requestConf(true);
context.requestMutualAuth(true);
context.requestReplayDet(true);
context.requestSequenceDet(true);
// establish a context between peers
byte []inToken = new byte[0];
// Loop while there still is a token to be processed
while (!context.isEstablished()) {
byte[] outToken
= context.initSecContext(inToken, 0, inToken.length);
// send the output token if generated
if (outToken != null)
sendToken(outToken);
if (!context.isEstablished()) {
inToken = readToken();
}
// display context information
System.out.println("Remaining lifetime in seconds = "
+ context.getLifetime());
System.out.println("Context mechanism = " + context.getMech());
System.out.println("Initiator = " + context.getSrcName());
System.out.println("Acceptor = " + context.getTargName());
if (context.getConfState())
System.out.println("Confidentiality (i.e., privacy) is available");
if (context.getIntegState())
System.out.println("Integrity is available");
// perform wrap on an application supplied message, appMsg,
// using QOP = 0, and requesting privacy service
byte [] appMsg ...
MessageProp mProp = new MessageProp(0, true);
byte []tok = context.wrap(appMsg, 0, appMsg.length, mProp);
sendToken(tok);
// release the local-end of the context
context.dispose();
- Since:
- 1.4
Поля
| Модификатор и Тип | Поле и Описание |
|---|---|
static int |
DEFAULT_LIFETIME Константа времени жизни, представляющая время жизни контекста по умолчанию. |
static int |
INDEFINITE_LIFETIME Константа времени жизни, представляющая неопределенное время жизни контекста. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
byte[] |
acceptSecContext(byte[] inToken,
int offset,
int len) Вызывается приемником контекста при получении маркера от партнера. |
void |
acceptSecContext(InputStream inStream,
OutputStream outStream) Вызывается приемником контекста для обработки маркера от партнера с использованием потоков. |
void |
dispose() Освобождает системные ресурсы и криптографическую информацию, хранящиеся в объекте контекста, и делает контекст недействительным. |
byte[] |
export() Экспортирует этот контекст, чтобы другой процесс мог его импортировать. |
boolean |
getAnonymityState() Определяет, аутентифицирован ли инициатор контекста анонимно для приемника контекста. |
boolean |
getConfState() Определяет, доступна ли конфиденциальность данных через контекст. |
boolean |
getCredDelegState() Определяет, включена ли делегация учетных данных в этом контексте. |
GSSCredential |
getDelegCred() Получает учетные данные, делегированные инициатором контекста приемнику контекста. |
boolean |
getIntegState() Определяет, доступна ли целостность данных через контекст. |
int |
getLifetime() Определяет оставшийся срок действия этого контекста. |
Oid |
getMech() Определяет используемый механизм для этого контекста. |
byte[] |
getMIC(byte[] inMsg,
int offset,
int len,
MessageProp msgProp) Возвращает маркер, содержащий криптографический код целостности сообщения (MIC) для предоставленного сообщения, для передачи приложению-партнеру. |
void |
getMIC(InputStream inStream,
OutputStream outStream,
MessageProp msgProp) Использует потоки для создания маркера, содержащего криптографический MIC для предоставленного сообщения, для передачи приложению-партнеру. |
boolean |
getMutualAuthState() Определяет, включена ли взаимная аутентификация в этом контексте. |
boolean |
getReplayDetState() Определяет, включено ли обнаружение повторов для служб безопасности по отдельным сообщениям из этого контекста. |
boolean |
getSequenceDetState() Определяет, включена ли проверка последовательности для служб безопасности по отдельным сообщениям из этого контекста. |
GSSName |
getSrcName() Возвращает имя инициатора контекста. |
GSSName |
getTargName() Возвращает имя приемника контекста. |
int |
getWrapSizeLimit(int qop,
boolean confReq,
int maxTokenSize) Используется для определения ограничений на размер сообщения, которое может быть передано в |
byte[] |
initSecContext(byte[] inputBuf,
int offset,
int len) Вызывается инициатором контекста для запуска фазы создания контекста и обработки любых маркеров, сгенерированных методом партнера |
int |
initSecContext(InputStream inStream,
OutputStream outStream) Вызывается инициатором контекста для запуска фазы создания контекста и обработки любых маркеров, сгенерированных методом партнера |
boolean |
isEstablished() Используется во время создания контекста для определения состояния контекста. |
boolean |
isInitiator() Определяет, является ли это инициатором контекста. |
boolean |
isProtReady() Определяет, готов ли контекст для использования операций по отдельным сообщениям через него. |
boolean |
isTransferable() Определяет, может ли контекст быть передан другим процессам с помощью метода |
void |
requestAnonymity(boolean state) Запрашивает, чтобы идентификатор инициатора не раскрывался приемнику. |
void |
requestConf(boolean state) Запрашивает включение конфиденциальности данных для метода |
void |
requestCredDeleg(boolean state) Запрашивает делегирование учетных данных инициатора приемнику во время создания контекста. |
void |
requestInteg(boolean state) Запрашивает включение целостности данных для методов |
void |
requestLifetime(int lifetime) Запрашивает срок действия контекста в секундах. |
void |
requestMutualAuth(boolean state) Запрашивает выполнение взаимной аутентификации при создании контекста. |
void |
requestReplayDet(boolean state) Запрашивает включение обнаружения повторов для служб безопасности по отдельным сообщениям после создания контекста. |
void |
requestSequenceDet(boolean state) Запрашивает включение проверки последовательности для служб безопасности по отдельным сообщениям после создания контекста. |
void |
setChannelBinding(ChannelBinding cb) Устанавливает канальные связи, которые будут использоваться при создании контекста. |
byte[] |
unwrap(byte[] inBuf,
int offset,
int len,
MessageProp msgProp) Используется для обработки маркеров, сгенерированных методом |
void |
unwrap(InputStream inStream,
OutputStream outStream,
MessageProp msgProp) Использует потоки для обработки маркеров, сгенерированных методом |
void |
verifyMIC(byte[] inToken,
int tokOffset,
int tokLen,
byte[] inMsg,
int msgOffset,
int msgLen,
MessageProp msgProp) Проверяет криптографический MIC, содержащийся в параметре маркера, для предоставленного сообщения. |
void |
verifyMIC(InputStream tokStream,
InputStream msgStream,
MessageProp msgProp) Использует потоки для проверки криптографического MIC, содержащегося в параметре маркера, для предоставленного сообщения. |
byte[] |
wrap(byte[] inBuf,
int offset,
int len,
MessageProp msgProp) Применяет службы безопасности по отдельным сообщениям к установленному контексту безопасности. |
void |
wrap(InputStream inStream,
OutputStream outStream,
MessageProp msgProp) Применяет службы безопасности по отдельным сообщениям к установленному контексту безопасности с использованием потоков. |
Поля
DEFAULT_LIFETIME
static final int DEFAULT_LIFETIME
Константа времени существования, представляющая стандартное время существования контекста. Это значение установлено в 0.
- См. также:
- Значения константных полей
INDEFINITE_LIFETIME
static final int INDEFINITE_LIFETIME
Константа времени существования, представляющая неограниченное время существования контекста. Это значение должно быть установлено в максимальное целое значение в Java - Integer.MAX_VALUE.
- См. также:
- Значения константных полей
Методы
initSecContext
byte[] initSecContext(byte[] inputBuf,
int offset,
int len)
throws GSSException Вызывается инициатором контекста для начала фазы создания контекста и обработки любых токенов, сгенерированных методом партнера acceptSecContext. Этот метод может вернуть токен вывода, который приложение должно отправить партнеру для обработки его методом acceptSecContext. Приложение может вызвать isEstablished для определения, завершена ли фаза установления контекста с этой стороны контекста. Значение возврата false от isEstablished указывает на то, что ожидается больше токенов, которые будут предоставлены initSecContext. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов get.
Обратите внимание, что метод initSecContext может вернуть токен для партнера, и метод isEstablished также вернуть true. Это указывает на то, что токен необходимо отправить партнеру, но локальный конец контекста теперь полностью установлен.
Некоторые поставщики механизмов могут потребовать, чтобы вызывающему лицу было предоставлено разрешение на инициацию контекста безопасности. Неуспешная проверка разрешения может привести к тому, что из этого метода будет брошено исключение SecurityException.
- Параметры:
-
inputBuf- токен, сгенерированный партнером. Этот параметр игнорируется при первом вызове, так как токен от партнера не получен. -
offset- смещение в inputBuf, где начинается токен. -
len- длина токена. - Возвращает:
- массив байтов, содержащий токен, который необходимо отправить партнеру.
nullуказывает, что токен не генерируется. - Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.NO_CRED,GSSException.CREDENTIALS_EXPIRED,GSSException.BAD_BINDINGS,GSSException.OLD_TOKEN,GSSException.DUPLICATE_TOKEN,GSSException.BAD_NAMETYPE,GSSException.BAD_MECH,GSSException.FAILURE
initSecContext
int initSecContext(InputStream inStream,
OutputStream outStream)
throws GSSException Вызывается инициатором контекста для начала фазы создания контекста и обработки любых токенов, сгенерированных методом партнера acceptSecContext с использованием потоков. Этот метод может записать токен вывода в OutpuStream, который приложение должно отправить партнеру для обработки его вызовом acceptSecContext . Обычно приложение гарантирует это, вызывая метод flush на OutputStream, который инкапсулирует соединение между двумя партнерами. Приложение может определить, был ли токен записан в OutputStream по значению возврата этого метода. Значение возврата 0 указывает, что токен не был записан. Приложение может вызвать isEstablished для определения, завершена ли фаза установления контекста с этой стороны контекста. Значение возврата false от isEstablished указывает на то, что ожидается больше токенов, которые будут предоставлены initSecContext. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов get.
Обратите внимание, что метод initSecContext может вернуть токен для партнера, и метод isEstablished также вернуть true. Это указывает на то, что токен необходимо отправить партнеру, но локальный конец контекста теперь полностью установлен.
Токены аутентификации GSS-API содержат определенный начальный и конечный маркер. Этот метод попытается прочитать один из этих маркеров при каждом вызове и может блокироваться на потоке, если доступна только часть токена. Во всех других отношениях этот метод эквивалентен методу на основе массива байтов initSecContext.
Некоторые поставщики механизмов могут потребовать, чтобы вызывающему лицу было предоставлено разрешение на инициацию контекста безопасности. Неуспешная проверка разрешения может привести к тому, что из этого метода будет брошено исключение SecurityException.
Следующий пример кода демонстрирует, как можно использовать этот метод:
InputStream is ...
OutputStream os ...
GSSContext context ...
// Loop while there is still a token to be processed
while (!context.isEstablished()) {
context.initSecContext(is, os);
// send output token if generated
os.flush();
}
- Параметры:
-
inStream- поток ввода, содержащий токен, сгенерированный партнером. Этот параметр игнорируется при первом вызове, так как токен от партнера не был или не будет получен на данном этапе. -
outStream- поток вывода, в который будет записан токен вывода. На последнем этапе установления контекста, возможно, не будет записано ни одного байта. - Возвращает:
- количество байтов, записанных в OutputStream в качестве части токена, который нужно отправить партнеру. Значение 0 указывает, что токен отправлять не нужно.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.NO_CRED,GSSException.CREDENTIALS_EXPIRED,GSSException.BAD_BINDINGS,GSSException.OLD_TOKEN,GSSException.DUPLICATE_TOKEN,GSSException.BAD_NAMETYPE,GSSException.BAD_MECH,GSSException.FAILURE
acceptSecContext
byte[] acceptSecContext(byte[] inToken,
int offset,
int len)
throws GSSException Вызывается приемником контекста при получении токена от партнера. Этот метод может вернуть токен вывода, который приложение должно отправить партнеру для дальнейшей обработки его вызовом initSecContext.
Приложение может вызвать isEstablished для определения, завершена ли фаза установления контекста для данного партнера. Значение возврата false от isEstablished указывает на то, что ожидается больше токенов, которые будут предоставлены этому методу. После завершения установления контекста доступные параметры контекста можно запросить с помощью методов get.
Обратите внимание, что acceptSecContext может вернуть токен для партнера, а isEstablished также вернуть true. Это указывает, что токен необходимо отправить партнеру, но локальный конец контекста теперь полностью установлен.
Некоторые поставщики механизмов могут потребовать, чтобы вызывающему лицу было предоставлено разрешение на принятие контекста безопасности. Неуспешная проверка разрешения может привести к тому, что из этого метода будет брошено исключение SecurityException.
Следующий пример кода демонстрирует, как можно использовать этот метод:
byte[] inToken;
byte[] outToken;
GSSContext context ...
// Loop while there is still a token to be processed
while (!context.isEstablished()) {
inToken = readToken();
outToken = context.acceptSecContext(inToken, 0,
inToken.length);
// send output token if generated
if (outToken != null)
sendToken(outToken);
}
- Параметры:
-
inToken- токен, сгенерированный партнером. -
offset- смещение в inToken, где начинается токен. -
len- длина токена. - Возвращает:
- массив байтов, содержащий токен, который нужно отправить партнеру.
nullуказывает, что токен не генерируется. - Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.NO_CRED,GSSException.CREDENTIALS_EXPIRED,GSSException.BAD_BINDINGS,GSSException.OLD_TOKEN,GSSException.DUPLICATE_TOKEN,GSSException.BAD_MECH,GSSException.FAILURE
acceptSecContext
void acceptSecContext(InputStream inStream,
OutputStream outStream)
throws GSSException Вызывается приемником контекста для обработки маркера от соседа с использованием потоков. Он может записать маркер вывода в OutputStream, который приложение должно будет отправить соседу для обработки его методом initSecContext. Обычно приложение обеспечит это, вызвав метод flush для объекта OutputStream, который инкапсулирует соединение между двумя соседями. Приложение может вызвать isEstablished, чтобы определить, завершен ли фаза установления контекста на этой стороне. Значение false метода isEstablished указывает, что ожидается предоставление дополнительных маркеров методу acceptSecContext. После завершения установления контекста доступные опции контекста могут быть запрошены через методы получения.
Обратите внимание, что acceptSecContext может вернуть маркер для соседа, а isEstablished может вернуть true также. Это указывает, что маркер нужно отправить соседу, но локальная часть контекста теперь полностью установлена.
Маркеры аутентификации GSS-API содержат определенные начало и конец. Этот метод попытается прочитать один из этих маркеров за вызов и может заблокироваться на потоке, если доступна только часть маркера. Во всех других аспектах этот метод эквивалентен методу на основе массива байтов acceptSecContext.
Некоторые поставщики механизмов могут потребовать, чтобы вызывающему лицу было предоставлено разрешение на прием защищенного контекста. Неуспешная проверка разрешения может вызвать исключение SecurityException из этого метода.
Следующий пример кода демонстрирует, как можно использовать этот метод:
InputStream is ...
OutputStream os ...
GSSContext context ...
// Loop while there is still a token to be processed
while (!context.isEstablished()) {
context.acceptSecContext(is, os);
// send output token if generated
os.flush();
}
- Параметры:
-
inStream- поток ввода, содержащий маркер, сгенерированный соседом. -
outStream- поток вывода, в который будет записан маркер вывода. На заключительном этапе установления контекста, возможно, не будет записано никаких байтов. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.NO_CRED,GSSException.CREDENTIALS_EXPIRED,GSSException.BAD_BINDINGS,GSSException.OLD_TOKEN,GSSException.DUPLICATE_TOKEN,GSSException.BAD_MECH,GSSException.FAILURE
isEstablished
boolean isEstablished()
Используется во время установления контекста для определения состояния контекста.
- Возвращает:
-
trueесли это полностью установленный контекст на стороне вызывающего лица и больше маркеров от соседа не требуется.
dispose
void dispose()
throws GSSException Освобождает любые системные ресурсы и криптографическую информацию, хранящиеся в объекте контекста, и делает контекст недействительным.
- Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
getWrapSizeLimit
int getWrapSizeLimit(int qop,
boolean confReq,
int maxTokenSize)
throws GSSException Используется для определения ограничений на размер сообщения, которое может быть передано методу wrap. Возвращает максимальный размер сообщения, который, если будет представлен методу wrap с теми же параметрами confReq и qop, приведет к маркерам вывода, содержащим не более maxTokenSize байт.
Этот вызов предназначен для использования приложениями, которые взаимодействуют через протоколы, накладывающие максимальный размер сообщения. Он позволяет приложению фрагментировать сообщения перед применением защиты.
Реализации GSS-API рекомендуются, но не требуются для обнаружения недопустимых значений QOP при вызове getWrapSizeLimit. Эта процедура гарантирует только максимальный размер сообщения, а не доступность определенных значений QOP для защиты сообщений.
- Параметры:
-
qop- уровень защиты, который будет запрошен от wrap. -
confReq-true, если wrap будет запрошен для предоставления конфиденциальности,falseв противном случае. -
maxTokenSize- желаемый максимальный размер маркера, выпущенного wrap. - Возвращает:
- максимальный размер входного маркера для данного размера маркера вывода
- Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.FAILURE
wrap
byte[] wrap(byte[] inBuf,
int offset,
int len,
MessageProp msgProp)
throws GSSException Применяет защитные услуги по сообщению над установленным защищенным контекстом. Метод вернет маркер с предоставленными приложением данными и криптографическим MIC над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (privacy).
Объект MessageProp создается приложением и используется для задания значения QOP, которое выбирает криптографические алгоритмы, и службы конфиденциальности для необязательного шифрования сообщения. Подлежащий механизм, используемый в вызове, может не быть в состоянии предоставить службу конфиденциальности. Он устанавливает фактическую службу конфиденциальности, которую он предоставляет, в этом объекте MessageProp, который вызывающая сторона должна запросить по возвращении. Если механизм не может предоставить запрошенный QOP, он выбросит GSSException с кодом BAD_QOP.
Поскольку некоторые протоколы на уровне приложения могут захотеть использовать маркеры, выпущенные wrap, для предоставления "безопасной рамочной структуры", реализации должны поддерживать обертывание сообщений нулевой длины.
Приложение будет отвечать за отправку маркера соседу.
- Параметры:
-
inBuf- данные приложения, которые необходимо защитить. -
offset- смещение в inBuf, где начинаются данные. -
len- длина данных -
msgProp- экземпляр MessageProp, используемый приложением для задания желаемого QOP и состояния конфиденциальности. Установите желаемый QOP в 0, чтобы запросить значение по умолчанию QOP. По возвращении из этого метода этот объект будет содержать фактическое состояние конфиденциальности, которое было применено к сообщению базовым механизмом. - Возвращает:
- массив байтов, содержащий маркер, который необходимо отправить соседу.
- Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.FAILURE
wrap
void wrap(InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
throws GSSException Применяет защитные услуги по сообщению над установленным защищенным контекстом с использованием потоков. Метод вернет маркер с предоставленными приложением данными и криптографическим MIC над ними. Данные могут быть зашифрованы, если была запрошена конфиденциальность (privacy). Этот метод эквивалентен методу на основе массива байтов wrap.
Приложение будет отвечать за отправку маркера соседу. Обычно приложение обеспечит это, вызвав метод flush для объекта OutputStream, который инкапсулирует соединение между двумя соседями.
Объект MessageProp создается приложением и используется для задания значения QOP, которое выбирает криптографические алгоритмы, и службы конфиденциальности для необязательного шифрования сообщения. Подлежащий механизм, используемый в вызове, может не быть в состоянии предоставить службу конфиденциальности. Он устанавливает фактическую службу конфиденциальности, которую он предоставляет, в этом объекте MessageProp, который вызывающая сторона должна запросить по возвращении. Если механизм не может предоставить запрошенный QOP, он выбросит GSSException с кодом BAD_QOP.
Поскольку некоторые протоколы на уровне приложения могут захотеть использовать маркеры, выпущенные wrap, для предоставления "безопасной рамочной структуры", реализации должны поддерживать обертывание сообщений нулевой длины.
- Параметры:
-
inStream- поток ввода, содержащий данные приложения, которые необходимо защитить. Все доступные данные в inStream используются. -
outStream- поток вывода для записи защищенного сообщения. -
msgProp- экземпляр MessageProp, используемый приложением для задания желаемого QOP и состояния конфиденциальности. Установите желаемый QOP в 0, чтобы запросить значение по умолчанию QOP. По возвращении из этого метода этот объект будет содержать фактическое состояние конфиденциальности, которое было применено к сообщению базовым механизмом. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.FAILURE
unwrap
byte[] unwrap(byte[] inBuf,
int offset,
int len,
MessageProp msgProp)
throws GSSException Используется для обработки маркеров, сгенерированных методом wrap на другой стороне контекста. Метод вернет сообщение, предоставленное приложением соседа в вызове wrap, одновременно проверяя встроенный MIC для этого сообщения.
Объект MessageProp создается приложением и используется базовым механизмом для возврата информации вызывающей стороне, такой как QOP, применялась ли конфиденциальность к сообщению и другая дополнительная информация о состоянии сообщения.
Поскольку некоторые протоколы на уровне приложения могут захотеть использовать маркеры, выпущенные wrap, для предоставления "безопасной рамочной структуры", реализации должны поддерживать обертывание и разворачивание сообщений нулевой длины.
- Параметры:
-
inBuf- массив байтов, содержащий маркер wrap, полученный от соседа. -
offset- смещение, где начинается маркер. -
len- длина маркера -
msgProp- по возвращении из метода этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию о том, был ли маркер дубликатом, устаревшим, вне последовательности или прибывшим после разрыва. - Возвращает:
- массив байтов, содержащий сообщение, развернутое из входного маркера.
- Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.CONTEXT_EXPIRED,GSSException.FAILURE
unwrap
void unwrap(InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
throws GSSException Использует потоки для обработки токенов, сгенерированных методом wrap на другой стороне контекста. Метод вернёт сообщение, предоставленное приложением-партнёром в вызове wrap, одновременно проверив встроенный MIC для этого сообщения.
Объект MessageProp инициализируется приложением и используется внутренним механизмом для возвращения информации вызывающей стороне, такой как QOP, применялась ли конфиденциальность к сообщению, и другая дополнительная информация о состоянии сообщения.
Так как некоторые протоколы прикладного уровня могут использовать токены, сгенерированные wrap, для обеспечения "защищённой структуры", реализации должны поддерживать обёртывание и развёртывание сообщений нулевой длины.
Формат входного токена, который считывает этот метод, определён в спецификации для используемого внутреннего механизма. Этот метод попытается прочитать один из этих токенов на каждый вызов. Если токен механизма содержит чёткий старт и стоп, этот метод может блокироваться на InputStream если доступна только часть токена. Если старт и стоп токена не определены, метод попытается обработать все доступные байты как часть токена.
Помимо возможного блокирования, описанного выше, этот метод эквивалентен методу unwrap на основе массива байт.
- Параметры:
-
inStream- поток InputStream, содержащий токен wrap, сгенерированный партнёром. -
outStream- поток OutputStream для записи сообщения приложения. -
msgProp- по возвращении из метода, этот объект будет содержать применённый QOP, состояние конфиденциальности сообщения и дополнительную информацию, указывающую, был ли токен дубликатом, устаревшим, вне очереди или пришёл с задержкой. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKEN,GSSException.BAD_MIC,GSSException.CONTEXT_EXPIRED,GSSException.FAILURE
getMIC
byte[] getMIC(byte[] inMsg,
int offset,
int len,
MessageProp msgProp)
throws GSSException Возвращает токен, содержащий криптографический код целостности сообщения (MIC) для предоставленного сообщения для передачи приложению-партнёру. В отличие от wrap, который инкапсулирует сообщение пользователя в возвращаемом токене, только MIC сообщения возвращается в выходном токене.
Обратите внимание, что конфиденциальность может быть применена только через вызов wrap.
Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «защищённой структуры», реализации должны поддерживать вычисление MIC для сообщений нулевой длины.
- Параметры:
-
inMsg- сообщение для вычисления MIC. -
offset- смещение в inMsg, где начинается сообщение. -
len- длина сообщения -
msgProp- экземплярMessageProp, используемый приложением для задания желаемого QOP. Установите желаемый QOP в0вmsgProp, чтобы запросить стандартный QOP. В качестве альтернативы, передайтеnullдляmsgPropдля запроса стандартного QOP. - Возвращает:
- массив байт byte[] содержащий токен, который будет отправлен партнёру.
- Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.FAILURE
getMIC
void getMIC(InputStream inStream,
OutputStream outStream,
MessageProp msgProp)
throws GSSException Использует потоки для создания токена, содержащего криптографический MIC для предоставленного сообщения, для передачи приложению-партнёру. В отличие от wrap, который инкапсулирует сообщение пользователя в возвращаемом токене, только MIC сообщения создаётся в выходном токене. Этот метод эквивалентен методу getMIC на основе массива байт. Обратите внимание, что конфиденциальность может быть применена только через вызов wrap.
Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «защищённой структуры», реализации должны поддерживать вычисление MIC для сообщений нулевой длины.
- Параметры:
-
inStream- поток InputStream, содержащий сообщение для вычисления MIC. Все доступные данные в inStream используются. -
outStream- поток OutputStream для записи выходного токена. -
msgProp- экземплярMessageProp, используемый приложением для задания желаемого QOP. Установите желаемый QOP в0вmsgProp, чтобы запросить стандартный QOP. В качестве альтернативы, передайтеnullдляmsgPropдля запроса стандартного QOP. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.CONTEXT_EXPIRED,GSSException.BAD_QOP,GSSException.FAILURE
verifyMIC
void verifyMIC(byte[] inToken,
int tokOffset,
int tokLen,
byte[] inMsg,
int msgOffset,
int msgLen,
MessageProp msgProp)
throws GSSException Проверяет криптографический MIC, содержащийся в параметре токена, для предоставленного сообщения.
Объект MessageProp инициализируется приложением и используется внутренним механизмом для возвращения информации вызывающей стороне, такой как QOP, указывающий уровень защиты, применённой к сообщению, и другая дополнительная информация о состоянии сообщения.
Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «защищённой структуры», реализации должны поддерживать вычисление и проверку MIC для сообщений нулевой длины.
- Параметры:
-
inToken- токен, сгенерированный методом getMIC партнёра. -
tokOffset- смещение в inToken, где начинается токен. -
tokLen- длина токена. -
inMsg- сообщение приложения, для проверки криптографического MIC. -
msgOffset- смещение в inMsg, где начинается сообщение. -
msgLen- длина сообщения. -
msgProp- по возвращении из метода, этот объект будет содержать применённый QOP и дополнительную информацию, указывающую, был ли токен дубликатом, устаревшим, вне очереди или пришёл с задержкой. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKENGSSException.BAD_MICGSSException.CONTEXT_EXPIREDGSSException.FAILURE
verifyMIC
void verifyMIC(InputStream tokStream,
InputStream msgStream,
MessageProp msgProp)
throws GSSException Использует потоки для проверки криптографического MIC, содержащегося в параметре токена, для предоставленного сообщения. Этот метод эквивалентен методу verifyMIC на основе массива байт. Объект MessageProp инициализируется приложением и используется внутренним механизмом для возвращения информации вызывающей стороне, такой как QOP, указывающий уровень защиты, применённой к сообщению, и другая дополнительная информация о состоянии сообщения.
Поскольку некоторые протоколы прикладного уровня могут использовать токены, выпущенные getMIC, для обеспечения «защищённой структуры», реализации должны поддерживать вычисление и проверку MIC для сообщений нулевой длины.
Формат входного токена, который считывает этот метод, определён в спецификации для используемого внутреннего механизма. Этот метод попытается прочитать один из этих токенов на каждый вызов. Если токен механизма содержит чёткий старт и стоп, этот метод может блокироваться на InputStream если доступна только часть токена. Если старт и стоп токена не определены, метод попытается обработать все доступные байты как часть токена.
Помимо возможного блокирования, описанного выше, этот метод эквивалентен методу verifyMIC на основе массива байт.
- Параметры:
-
tokStream- поток InputStream, содержащий токен, сгенерированный методом getMIC партнёра. -
msgStream- поток InputStream, содержащий сообщение приложения для проверки криптографического MIC. Все доступные данные в msgStream используются. -
msgProp- по возвращении из метода, этот объект будет содержать применённый QOP и дополнительную информацию, указывающую, был ли токен дубликатом, устаревшим, вне очереди или пришёл с задержкой. - Исключения:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.DEFECTIVE_TOKENGSSException.BAD_MICGSSException.CONTEXT_EXPIREDGSSException.FAILURE
export
byte[] export()
throws GSSException Экспортирует этот контекст, чтобы другой процесс мог его импортировать. Предоставляется для поддержки совместной работы между несколькими процессами. Эта процедура обычно используется приемником контекста в приложении, где один процесс получает входящие запросы подключения и принимает контексты безопасности через них, а затем передает установленный контекст одному или нескольким другим процессам для обмена сообщениями.
Этот метод деактивирует контекст безопасности и создает межпроцессный токен, который, при передаче в GSSManager.createContext в другом процессе, повторно активирует контекст во втором процессе. Только одно экземпляр данного контекста может быть активным в любой момент времени; последующая попытка экспортера контекста получить доступ к экспортированному контексту безопасности завершится ошибкой.
Реализация может ограничивать набор процессов, которые могут импортировать межпроцессный токен, либо в зависимости от локальной политики безопасности, либо в результате решений реализации. Например, некоторые реализации могут ограничить передачу контекстов только между процессами, работающими под одной учетной записью или входящими в одну группу процессов.
Межпроцессный токен может содержать конфиденциальную информацию (например, криптографические ключи). Хотя механизмы должны избегать размещения такой конфиденциальной информации в межпроцессных токенах или шифровать токен перед его возвратом приложению, в типичной реализации GSS-API это может быть невозможно. Таким образом, приложение должно позаботиться о защите межпроцессного токена и убедиться, что любой процесс, которому передается токен, является надежным.
Реализации не обязаны поддерживать межпроцессную передачу контекстов безопасности. Вызов метода isTransferable укажет, может ли объект контекста передаваться.
Вызов этого метода для контекста, который не экспортируется, приведет к сбрасыванию исключения с кодом ошибки GSSException.UNAVAILABLE.
- Возвращает:
- массив байтов, содержащий экспортированный контекст
- Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.UNAVAILABLE,GSSException.CONTEXT_EXPIRED,GSSException.NO_CONTEXT,GSSException.FAILURE - См. также:
GSSManager.createContext(byte[])
requestMutualAuth
void requestMutualAuth(boolean state)
throws GSSException Запрашивает выполнение взаимной аутентификации во время создания контекста. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext.
Не все механизмы поддерживают взаимную аутентификацию, и некоторые механизмы могут потребовать взаимной аутентификации даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос выполнен с помощью метода getMutualAuthState.
- Параметры:
-
state- логическое значение, указывающее, должна ли использоваться взаимная аутентификация. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getMutualAuthState()
requestReplayDet
void requestReplayDet(boolean state)
throws GSSException Запрашивает включение обнаружения повторных запросов для служб безопасности по сообщениям после создания контекста. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Во время создания контекста обнаружение повторных запросов не является опцией и зависит от возможностей базового механизма.
Не все механизмы поддерживают обнаружение повторных запросов, и некоторые механизмы могут потребовать обнаружения повторных запросов, даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос выполнен с помощью метода getReplayDetState. Если обнаружение повторных запросов включено, то методы MessageProp.isDuplicateToken и MessageProp.isOldToken будут возвращать корректные результаты для объекта MessageProp, переданного в метод unwrap или метод verifyMIC.
- Параметры:
-
state- логическое значение, указывающее, должно ли быть включено обнаружение повторных запросов в рамках установленного контекста. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getReplayDetState()
requestSequenceDet
void requestSequenceDet(boolean state)
throws GSSException Запрашивает включение проверки последовательности для служб безопасности по сообщениям после создания контекста. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Во время создания контекста проверка последовательности не является опцией и зависит от возможностей базового механизма.
Не все механизмы поддерживают проверку последовательности, и некоторые механизмы могут потребовать проверки последовательности, даже если приложение этого не запрашивает. Поэтому приложение должно проверить, был ли запрос выполнен с помощью метода getSequenceDetState. Если проверка последовательности включена, то методы MessageProp.isDuplicateToken, MessageProp.isOldToken, MessageProp.isUnseqToken и MessageProp.isGapToken будут возвращать корректные результаты для объекта MessageProp, переданного в метод unwrap или метод verifyMIC.
- Параметры:
-
state- логическое значение, указывающее, должна ли быть включена проверка последовательности в рамках установленного контекста. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getSequenceDetState()
requestCredDeleg
void requestCredDeleg(boolean state)
throws GSSException Запрашивает делегирование учетных данных инициатора акцептору во время создания контекста. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают делегирование учетных данных. Поэтому приложение, которое хочет использовать делегирование, должно проверить, был ли запрос выполнен с помощью метода getCredDelegState. Если приложение указывает, что делегирование не должно использоваться, то механизм выполнит запрос, и делегирование не произойдет. Это исключение из общего правила, что механизм может включить услугу, даже если она не запрошена.
- Параметры:
-
state- логическое значение, указывающее, следует ли делегировать учетные данные. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getCredDelegState()
requestAnonymity
void requestAnonymity(boolean state)
throws GSSException Запрашивает, чтобы идентификатор инициатора не раскрывался акцептору. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают анонимность инициатора. Поэтому приложение должно проверить, был ли запрос выполнен с помощью метода getAnonymityState.
- Параметры:
-
state- логическое значение, указывающее, должен ли инициатор аутентифицироваться для акцептора как анонимный субъект. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getAnonymityState()
requestConf
void requestConf(boolean state)
throws GSSException Запрашивает включение конфиденциальности данных для метода wrap. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают конфиденциальность, и другие механизмы могут включить ее, даже если приложение этого не запрашивает. Приложение может проверить, был ли запрос выполнен с помощью метода getConfState. Если конфиденциальность включена, только тогда механизм выполнит запрос на конфиденциальность в объекте MessageProp, переданном в метод wrap.
Включение конфиденциальности также автоматически включает целостность.
- Параметры:
-
state- логическое значение, указывающее, должна ли быть включена конфиденциальность. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
-
getConfState(),getIntegState(),requestInteg(boolean),MessageProp
requestInteg
void requestInteg(boolean state)
throws GSSException Запрашивает включение целостности данных для методов wrap и getMIC. Этот запрос может быть выполнен только со стороны инициатора контекста и должен быть выполнен до первого вызова initSecContext. Не все механизмы поддерживают целостность, и другие механизмы могут включить ее, даже если приложение этого не запрашивает. Приложение может проверить, был ли запрос выполнен с помощью метода getIntegState.
Отключение целостности также автоматически отключит конфиденциальность.
- Параметры:
-
state- логическое значение, указывающее, должна ли быть включена целостность. - Выбрасывает:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getIntegState()
requestLifetime
void requestLifetime(int lifetime)
throws GSSException Запрашивает время жизни контекста в секундах. Этот метод можно вызывать только со стороны инициатора контекста и до первого вызова initSecContext.
Фактическое время жизни контекста будет зависеть от возможностей базового механизма, и приложение должно вызвать метод getLifetime, чтобы определить его.
- Параметры:
-
lifetime- желаемое время жизни контекста в секундах. ИспользуйтеINDEFINITE_LIFETIMEдля запроса неограниченного времени жизни иDEFAULT_LIFETIMEдля запроса значения по умолчанию. - Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
getLifetime()
setChannelBinding
void setChannelBinding(ChannelBinding cb)
throws GSSException Устанавливает используемые канальные привязки при создании контекста. Этот метод можно вызывать как со стороны инициатора контекста, так и со стороны акцептора, но его необходимо вызвать до начала создания контекста. Это означает, что инициатор должен вызвать его до первого вызова initSecContext, а акцептор — до первого вызова acceptSecContext.
- Параметры:
-
cb- используемые канальные привязки. - Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
getCredDelegState
boolean getCredDelegState()
Определяет, включена ли делегация учётных данных в этом контексте. Его могут вызывать как инициатор, так и акцептор контекста. Для получения определенного ответа этот метод необходимо вызывать только после завершения создания контекста. Обратите внимание, что если инициатор запрашивает, чтобы делегация не разрешалась, метод requestCredDeleg учтёт этот запрос, и этот метод вернёт false со стороны инициатора с этого момента.
- Возвращаемое значение:
- true, если делегация включена, иначе false.
- См. также:
requestCredDeleg(boolean)
getMutualAuthState
boolean getMutualAuthState()
Определяет, включена ли взаимная аутентификация в этом контексте. Его могут вызывать как инициатор, так и акцептор контекста. Для получения определенного ответа этот метод необходимо вызывать только после завершения создания контекста. Инициатор, запрашивающий взаимную аутентификацию, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был выполнен.
- Возвращаемое значение:
- true, если взаимная аутентификация включена, иначе false.
- См. также:
requestMutualAuth(boolean)
getReplayDetState
boolean getReplayDetState()
Определяет, включена ли защита от повторных сообщений для функций безопасности на уровне сообщений из этого контекста. Его могут вызывать как инициатор, так и акцептор контекста. Для получения определенного ответа этот метод необходимо вызывать только после завершения создания контекста. Инициатор, запрашивающий защиту от повторных сообщений, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был выполнен.
- Возвращаемое значение:
- true, если защита от повторных сообщений включена, иначе false.
- См. также:
requestReplayDet(boolean)
getSequenceDetState
boolean getSequenceDetState()
Определяет, вклюшена ли проверка последовательности для функций безопасности на уровне сообщений из этого контекста. Его могут вызывать как инициатор, так и акцептор контекста. Для получения определенного ответа этот метод необходимо вызывать только после завершения создания контекста. Инициатор, запрашивающий проверку последовательности, может вызвать этот метод после завершения контекста и удалить контекст, если его запрос не был выполнен.
- Возвращаемое значение:
- true, если проверка последовательности включена, иначе false.
- См. также:
requestSequenceDet(boolean)
getAnonymityState
boolean getAnonymityState()
Определяет, аутентифицирован ли инициатор контекста анонимно для акцептора контекста. Его могут вызывать как инициатор, так и акцептор контекста в любое время. Со стороны инициатора вызов этого метода определяет, была ли раскрыта личность инициатора в каком-либо из маркеров установления контекста, которые могли быть сгенерированы до сих пор initSecContext. Инициатор, который абсолютно должен быть анонимно аутентифицирован, должен вызвать этот метод после каждого вызова initSecContext чтобы определить, должен ли он отправлять сгенерированный маркер партнеру или прервать контекст. Со стороны акцептора вызов этого метода определяет, раскрыла ли какая-либо из обработанных маркеров, полученных acceptSecContext, личность инициатора.
- Возвращаемое значение:
- true, если инициатор контекста по-прежнему анонимный, иначе false.
- См. также:
requestAnonymity(boolean)
isTransferable
boolean isTransferable()
throws GSSException Определяет, может ли контекст передаваться другим процессам с помощью метода export. Этот вызов допустим только для полностью созданных контекстов.
- Возвращаемое значение:
- true, если этот контекст может быть экспортирован, иначе false.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
isProtReady
boolean isProtReady()
Определяет, готов ли контекст для использования операций с сообщениями. Некоторые механизмы могут разрешить использование операций с сообщениями до полного создания контекста.
- Возвращаемое значение:
- true, если методы, такие как
wrap,unwrap,getMIC, иverifyMIC, могут быть использованы с этим контекстом на текущем этапе создания контекста, иначе false.
getConfState
boolean getConfState()
Определяет, доступна ли конфиденциальность данных по контексту. Этот метод может быть вызван как инициатором, так и акцептором контекста, но только после того, как один из методов isProtReady или isEstablished вернёт true. Если этот метод возвращает true, то и getIntegState вернёт true.
- Возвращаемое значение:
- true, если службы конфиденциальности доступны, иначе false.
- См. также:
requestConf(boolean)
getIntegState
boolean getIntegState()
Определяет, доступна ли целостность данных по контексту. Этот метод может быть вызван как инициатором, так и акцептором контекста, но только после того, как один из методов isProtReady или isEstablished вернёт true. Этот метод всегда вернёт true, если getConfState вернёт true.
- Возвращаемое значение:
- true, если службы целостности доступны, иначе false.
- См. также:
requestInteg(boolean)
getLifetime
int getLifetime()
Определяет оставшееся время жизни этого контекста. Его могут вызывать как инициатор, так и акцептор контекста, но для получения определённого ответа его следует вызывать только после того, как isEstablished вернёт true.
- Возвращаемое значение:
- оставшееся время жизни в секундах
- См. также:
requestLifetime(int)
getSrcName
GSSName getSrcName()
throws GSSException Возвращает имя инициатора контекста. Этот вызов допустим только после того, как один из методов isProtReady или isEstablished вернёт true.
- Возвращаемое значение:
- GSSName, являющийся MN, содержащий имя инициатора контекста.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE - См. также:
GSSName
getTargName
GSSName getTargName()
throws GSSException Возвращает имя акцептора контекста. Этот вызов допустим только после того, как один из методов isProtReady или isEstablished вернёт true.
- Возвращаемое значение:
- GSSName, являющийся MN, содержащий имя акцептора контекста.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
getMech
Oid getMech()
throws GSSException Определяет используемый механизм для этого контекста. Этот метод можно вызывать до полного создания контекста, но возвращаемый механизм может меняться при последующих вызовах в случае согласованного механизма.
- Возвращаемое значение:
- Oid используемого механизма
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
getDelegCred
GSSCredential getDelegCred()
throws GSSException Получает учётные данные, делегированные инициатором контекста акцептору контекста. Его следует вызывать только со стороны акцептора контекста, и только после полного создания контекста. Вызывающий может использовать метод getCredDelegState для определения наличия делегированных учётных данных.
- Возвращаемое значение:
- GSSCredential, содержащий делегированные учётные данные инициатора, или
null, если учётные данные не были делегированы. - Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
isInitiator
boolean isInitiator()
throws GSSException Определяет, является ли это контекст инициатора. Этот метод можно вызывать как со стороны инициатора, так и со стороны акцептора контекста.
- Возвращаемое значение:
- true, если это контекст инициатора, иначе false, если это контекст акцептора.
- Исключение:
-
GSSException- содержащий следующие основные коды ошибок:GSSException.FAILURE
© 1993, 2020, 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.