接口 ExtendedGSSContext

所有父级接口:
GSSContext

public interface ExtendedGSSContext extends GSSContext
扩展的 GSSContext 接口,用于支持 org.ietf.jgss.GSSContext 未定义的附加功能,例如查询特定于上下文的属性。
  • 方法详情

    • inquireSecContext

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

      如果有安全管理器,则必须授予名称为 type.mechInquireSecContextPermission 。否则,这可能会导致 SecurityException

      示例:

         GSSContext ctxt = m.createContext(...)
         // Establishing the context
         if (ctxt instanceof ExtendedGSSContext) {
           ExtendedGSSContext ex = (ExtendedGSSContext)ctxt;
           try {
             Key key = (key)ex.inquireSecContext(
                 InquireType.KRB5_GET_SESSION_KEY);
             // read key info
           } catch (GSSException gsse) {
             // deal with exception
           }
         }
       
      参数:
      type - 请求的属性类型
      返回:
      属性,详见方法文档。
      抛出:
      GSSException - 包含以下主要错误代码:GSSException.BAD_MECH 如果机制不支持此方法,GSSException.UNAVAILABLE 如果不支持指定的类型,GSSException.NO_CONTEXT 如果安全上下文无效,GSSException.FAILURE 对于其他未指定的故障。
      SecurityException - 如果存在安全管理器并且未授予适当的 InquireSecContextPermission
      参见:
    • requestDelegPolicy

      void requestDelegPolicy(boolean state) throws GSSException
      要求尊重授权策略。当请求真值时,底层上下文将使用环境定义的委托策略作为提示来确定是否应执行凭据委托。此请求只能在上下文发起者端进行,并且必须在第一次调用 initSecContext 之前完成。

      当此标志为 false 时,只有在 credentials delegation flag 为 true 时才会尝试委托。

      当此标志为真但 credentials delegation flag 为假时,只有在委托策略允许委托时才会尝试委托。

      当此标志和 credentials delegation flag 都为真时,将始终尝试委托。但是,如果委托策略不允许委托,即使委托成功,getDelegPolicyState() 的值也将为false。

      不管怎样,如果委托不成功,GSSContext.getCredDelegState() 返回的值为false,getDelegPolicyState() 返回的值也为false。

      并非所有机制都支持授权策略。因此,应用程序应检查请求是否已通过 getDelegPolicyState 方法得到满足。当不支持委托策略时,requestDelegPolicy 应该静默返回而不抛出异常。

      注意:对于 Kerberos 5 机制,委托策略是通过服务票证中的 OK-AS-DELEGATE 标志来表达的。如果为真,则 KDC 允许委派给目标服务。在跨字段环境中,为了允许委派,身份验证路径上的所有跨字段 TGT 也必须设置 OK-AS-DELAGATE 标志。

      参数:
      state - 如果应该遵守策略则为真
      抛出:
      GSSException - 包含以下主要错误代码:GSSException.FAILURE
    • getDelegPolicyState

      boolean getDelegPolicyState()
      返回委托策略响应。在建立安全上下文后调用。该方法只能在发起者端调用。参见 requestDelegPolicy(boolean)
      返回:
      授权策略响应