- 所有超级接口:
-
GSSContext
用于支持额外功能的扩展GSSContext接口,这些功能不是由
org.ietf.jgss.GSSContext
定义的,例如查询特定于上下文的属性。
-
Field Summary
Fields declared in interface org.ietf.jgss.GSSContext
DEFAULT_LIFETIME, INDEFINITE_LIFETIME
-
Method Summary
Modifier and TypeMethodDescriptionboolean
返回委托策略响应。inquireSecContext
(InquireType type) 返回与type
相关联的机制特定属性。void
requestDelegPolicy
(boolean state) 请求尊重委托策略。Methods declared in interface org.ietf.jgss.GSSContext
acceptSecContext, acceptSecContext, dispose, export, getAnonymityState, getConfState, getCredDelegState, getDelegCred, getIntegState, getLifetime, getMech, getMIC, getMIC, getMutualAuthState, getReplayDetState, getSequenceDetState, getSrcName, getTargName, getWrapSizeLimit, initSecContext, initSecContext, isEstablished, isInitiator, isProtReady, isTransferable, requestAnonymity, requestConf, requestCredDeleg, requestInteg, requestLifetime, requestMutualAuth, requestReplayDet, requestSequenceDet, setChannelBinding, unwrap, unwrap, verifyMIC, verifyMIC, wrap, wrap
-
Method Details
-
inquireSecContext
返回与type
相关联的机制特定属性。如果存在安全管理器,则必须授予名称为
type.mech
的InquireSecContextPermission
。否则,可能会导致SecurityException
。示例:
GSSContext ctxt = m.createContext(...) // 建立上下文 if (ctxt instanceof ExtendedGSSContext) { ExtendedGSSContext ex = (ExtendedGSSContext)ctxt; try { Key key = (key)ex.inquireSecContext( InquireType.KRB5_GET_SESSION_KEY); // 读取密钥信息 } catch (GSSException gsse) { // 处理异常 } }
- 参数:
-
type
- 请求的属性类型 - 返回:
- 属性,请参阅方法文档以获取详细信息。
- 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.BAD_MECH
如果机制不支持此方法,GSSException.UNAVAILABLE
如果不支持指定的类型,GSSException.NO_CONTEXT
如果安全上下文无效,GSSException.FAILURE
用于其他未指定的失败。 -
SecurityException
- 如果存在安全管理器并且未授予适当的InquireSecContextPermission
。 - 参见:
-
requestDelegPolicy
请求尊重委托策略。当请求一个true值时,底层上下文将使用环境中定义的委托策略作为提示,以确定是否应执行凭据委托。此请求只能在上下文发起方的一侧进行,并且必须在第一次调用initSecContext
之前完成。当此标志为false时,只有在
凭据委托标志
为true时才会尝试委托。当此标志为true但
凭据委托标志
为false时,只有在委托策略允许委托时才会尝试委托。当此标志和
凭据委托标志
都为true时,将始终尝试委托。但是,如果委托策略不允许委托,则getDelegPolicyState()
的值将为false,即使成功执行委托。在任何情况下,如果委托不成功,则
GSSContext.getCredDelegState()
返回的值为false,getDelegPolicyState()
返回的值也为false。并非所有机制都支持委托策略。因此,应用程序应检查请求是否得到了通过
getDelegPolicyState
方法的支持。当不支持委托策略时,requestDelegPolicy
应该在不抛出异常的情况下静默返回。注意: 对于Kerberos 5机制,委托策略通过服务票证中的OK-AS-DELEGATE标志来表示。当为true时,KDC允许委托给目标服务器。在跨域环境中,为了允许委托,认证路径上的所有跨域TGT也必须设置OK-AS-DELAGATE标志。
- 参数:
-
state
- 如果应尊重策略,则为true - 抛出:
-
GSSException
- 包含以下主要错误代码:GSSException.FAILURE
-
getDelegPolicyState
boolean getDelegPolicyState()返回委托策略响应。在安全上下文建立后调用。此方法只能在发起方一侧调用。请参阅requestDelegPolicy(boolean)
。- 返回:
- 委托策略响应
-