软件包  org.ietf.jgss

Interface GSSCredential

  • All Superinterfaces:
    Cloneable
    All Known Subinterfaces:
    ExtendedGSSCredential

    public interface GSSCredential
    extends Cloneable
    此接口封装实体的GSS-API凭据。 凭证包含所有必要的加密信息,以便能够代表其所代表的实体创建上下文。 它可能包含多个不同的机制特定凭证元素,每个元素包含特定安全机制的信息,但都指向同一个实体。 凭证可用于执行上下文启动,接受或两者。

    使用GSSManager类中的createCredential方法之一实例化凭据。 创建GSS-API凭证不是为了提供“登录到网络”功能,因为这样的功能将涉及创建新凭证而不仅仅是获取现有凭证的句柄。 包级别描述中的section on credential acquisition描述了如何在Java平台中获取现有凭证。 GSS-API实现必须对呼叫者施加本地访问控制策略,以防止未经授权的呼叫者获取他们无权获得的凭证。

    应用程序将创建传递所需参数的凭证对象。 然后,应用程序可以使用查询方法来获取有关实例化凭证对象的特定信息。 当不再需要凭证时,应用程序应调用dispose方法以释放凭证对象持有的任何资源并销毁任何加密敏感信息。

    此示例代码演示了为特定实体创建GSSCredential实现,查询其字段以及不再需要时的发布:

      GSSManager manager = GSSManager.getInstance();
    
        // start by creating a name object for the entity
        GSSName name = manager.createName("myusername", GSSName.NT_USER_NAME);
    
        // now acquire credentials for the entity
        GSSCredential cred = manager.createCredential(name,
                        GSSCredential.ACCEPT_ONLY);
    
        // display credential information - name, remaining lifetime,
        // and the mechanisms it has been acquired over
        System.out.println(cred.getName().toString());
        System.out.println(cred.getRemainingLifetime());
    
        Oid [] mechs = cred.getMechs();
        if (mechs != null) {
                for (int i = 0; i< mechs.length; i++)
                        System.out.println(mechs[i].toString());
        }
    
        // release system resources held by the credential
        cred.dispose(); 
    从以下版本开始:
    1.4
    另请参见:
    GSSManager.createCredential(int)GSSManager.createCredential(GSSName, int, Oid, int)GSSManager.createCredential(GSSName, int, Oid[], int)dispose()
    • 字段汇总

      字段  
      变量和类型 字段 描述
      static int ACCEPT_ONLY
      凭证使用标志,请求它仅可用于上下文接受。
      static int DEFAULT_LIFETIME
      表示默认凭据生存期的生命周期常量。
      static int INDEFINITE_LIFETIME
      表示无限凭证生命周期的生命周期常量。
      static int INITIATE_AND_ACCEPT
      凭证使用标志,请求它可用于上下文启动和接受。
      static int INITIATE_ONLY
      凭证使用标志,请求它仅可用于上下文启动。
    • 方法摘要

      所有方法  实例方法 抽象方法 
      变量和类型 方法 描述
      void add​(GSSName name, int initLifetime, int acceptLifetime, Oid mech, int usage)
      将机制特定凭证元素添加到现有凭证。
      void dispose()
      释放GSSCredential对象可能包含的任何敏感信息。
      boolean equals​(Object another)
      测试此GSSCredential是否与提供的对象断言相同的实体。
      Oid[] getMechs()
      返回此凭据支持的机制列表。
      GSSName getName()
      检索凭据断言的实体的名称。
      GSSName getName​(Oid mech)
      检索凭证断言的实体的机制名称。
      int getRemainingAcceptLifetime​(Oid mech)
      返回凭证保持能够使用指定机制接受安全上下文的生命周期(以秒为单位)。
      int getRemainingInitLifetime​(Oid mech)
      返回凭证保持能够使用指定机制启动安全上下文的生命周期(以秒为单位)。
      int getRemainingLifetime()
      返回凭证的剩余生命周期(以秒为单位)。
      int getUsage()
      返回凭据使用模式。
      int getUsage​(Oid mech)
      返回特定机制的凭据使用模式。
      int hashCode()
      返回此GSSCredential的哈希码值。
    • 字段详细信息

      • INITIATE_AND_ACCEPT

        static final int INITIATE_AND_ACCEPT
        凭证使用标志,请求它可用于上下文启动和接受。
        另请参见:
        常数字段值
      • INITIATE_ONLY

        static final int INITIATE_ONLY
        凭证使用标志,请求它仅可用于上下文启动。
        另请参见:
        常数字段值
      • ACCEPT_ONLY

        static final int ACCEPT_ONLY
        凭证使用标志,请求它仅可用于上下文接受。
        另请参见:
        常数字段值
      • DEFAULT_LIFETIME

        static final int DEFAULT_LIFETIME
        表示默认凭据生存期的生命周期常量。 该值设置为0。
        另请参见:
        常数字段值
      • INDEFINITE_LIFETIME

        static final int INDEFINITE_LIFETIME
        表示无限凭证生命周期的生命周期常量。 此值必须设置为Java中的最大整数值 - Integer.MAX_VALUE
        另请参见:
        常数字段值
    • 方法详细信息

      • dispose

        void dispose()
              throws GSSException
        释放GSSCredential对象可能包含的任何敏感信息。 应用程序应在不再需要凭据时立即调用此方法,以最大限度地减少维护任何敏感信息的时间。
        异常
        GSSException - 包含以下主要错误代码: GSSException.FAILURE
      • getRemainingInitLifetime

        int getRemainingInitLifetime​(Oid mech)
                              throws GSSException
        返回凭证保持能够使用指定机制启动安全上下文的生命周期(以秒为单位)。 此方法查询属于指定机制的启动器凭据元素。
        参数
        mech - 应查询其启动器凭据元素的机制的Oid。
        结果
        此凭证元素生命周期中剩余的秒数。 返回值INDEFINITE_LIFETIME表示凭证元素未过期。 返回值0表示凭证元素已过期。
        异常
        GSSException -包含以下主要错误代码: GSSException.BAD_MECHGSSException.FAILURE
      • getRemainingAcceptLifetime

        int getRemainingAcceptLifetime​(Oid mech)
                                throws GSSException
        返回凭证保持能够使用指定机制接受安全上下文的生命周期(以秒为单位)。 此方法查询属于指定机制的acceptor凭证元素。
        参数
        mech - 应查询其受体凭证元素的机制的Oid。
        结果
        此凭证元素生命周期中剩余的秒数。 返回值INDEFINITE_LIFETIME表示凭证元素未过期。 返回值0表示凭证元素已过期。
        异常
        GSSException -包含以下主要错误代码: GSSException.BAD_MECHGSSException.FAILURE
      • getUsage

        int getUsage()
              throws GSSException
        返回凭据使用模式。 换句话说,它告诉我们该凭证是否可用于启动或接受安全上下文。 它没有告诉我们必须使用哪种机制才能这样做。 预计应用程序将允许GSS-API在调用此方法后选择默认机制。
        结果
        返回值将是一个 INITIATE_ONLYACCEPT_ONLYINITIATE_AND_ACCEPT
        异常
        GSSException - 包含以下主要错误代码: GSSException.FAILURE
      • getMechs

        Oid[] getMechs()
                throws GSSException
        返回此凭据支持的机制列表。 它没有告诉我们哪些可用于启动上下文,哪些可用于接受上下文。 应用程序必须使用每个返回的Oid调用getUsage方法以确定可能的使用模式。
        结果
        与支持的机制相对应的Oid数组。
        异常
        GSSException - 包含以下主要错误代码: GSSException.FAILURE
      • equals

        boolean equals​(Object another)
        测试此GSSCredential是否与提供的对象断言相同的实体。 必须通过相同的机制获取这两个凭证,并且必须引用相同的主体。
        重写:
        equals在类 Object
        参数
        another - 与此相比较的另一个GSSCredential
        结果
        true如果两个GSSCredentials断言相同的实体; 否则为false
        另请参见:
        Object.hashCode()HashMap