Interface ExtendedGSSContext

所有超级接口:
GSSContext

public interface ExtendedGSSContext extends GSSContext
用于支持额外功能的扩展GSSContext接口,这些功能不是由org.ietf.jgss.GSSContext定义的,例如查询特定于上下文的属性。
  • Method Details

    • inquireSecContext

      Object inquireSecContext(InquireType type) throws GSSException
      返回与type相关联的机制特定属性。

      如果存在安全管理器,则必须授予名称为type.mechInquireSecContextPermission。否则,可能会导致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

      void requestDelegPolicy(boolean state) throws GSSException
      请求尊重委托策略。当请求一个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)
      返回:
      委托策略响应