Module  java.base
软件包  java.security

Class KeyStore.Builder

  • Enclosing class:
    KeyStore


    public abstract static class KeyStore.Builder
    extends Object
    要实例化的KeyStore对象的描述。

    此类的实例封装了实例化和初始化KeyStore对象所需的信息。 当调用getKeyStore()方法时,会触发该进程。

    这使得可以将配置从KeyStore对象创建中解耦,例如延迟密码提示直到需要。

    从以下版本开始:
    1.5
    另请参见:
    KeyStoreKeyStoreBuilderParameters
    • 构造方法详细信息

      • Builder

        protected Builder​()
        构建新的Builder。
    • 方法详细信息

      • getKeyStore

        public abstract KeyStore getKeyStore​()
                                      throws KeyStoreException
        返回此对象描述的KeyStore。
        结果
        这个对象描述的 KeyStore
        异常
        KeyStoreException - 如果在操作期间发生错误,例如,如果KeyStore无法实例化或加载
      • newInstance

        public static KeyStore.Builder newInstance​(KeyStore keyStore,
                                                   KeyStore.ProtectionParameter protectionParameter)
        返回封装给定KeyStore的新Builder。 getKeyStore()返回对象的方法将返回keyStore ,该getProtectionParameter()方法将返回protectionParameters

        如果现有的KeyStore对象需要与基于Builder的API一起使用,这将非常有用。

        参数
        keyStore - 要封装的KeyStore
        protectionParameter - 用于保护KeyStore条目的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果keyStore或protectParameters为空
        IllegalArgumentException - 如果keyStore尚未初始化
      • newInstance

        public static KeyStore.Builder newInstance​(String type,
                                                   Provider provider,
                                                   File file,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        在返回的构建器上首次调用getKeyStore()方法将创建一个类型为type的KeyStore,并调用其load()方法。 inputStream参数是由file 如果protectionPasswordProtection ,则通过调用getPassword方法获得密码。 否则,如果protectionCallbackHandlerProtection ,则通过调用CallbackHandler获取密码。

        后续调用getKeyStore()返回与初始调用相同的对象。 如果初始调用失败并带有KeyStoreException,后续调用也会引发KeyStoreException。

        KeyStore如果非空,则从provider实例化。 否则,将搜索所有安装的提供程序。

        调用getProtectionParameter()将返回一个封装用于调用load方法的密码的PasswordProtection对象。

        请注意getKeyStore()方法是在调用此方法的代码的AccessControlContext内执行的。

        参数
        type - 要构建的KeyStore的类型
        provider - 要从中将实例化KeyStore的提供者(或null)
        file - 包含KeyStore数据的文件
        protection - 保护KeyStore数据的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果类型,文件或保护为空
        IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例; 或者如果文件不存在或不引用普通文件
      • newInstance

        public static KeyStore.Builder newInstance​(File file,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        在返回的构建器上首次调用getKeyStore()方法将使用file创建一个KeyStore,以检测密钥库类型,然后调用其load()方法。 它使用相同的算法来确定密钥库类型,如KeyStore.getInstance(File, LoadStoreParameter)中所述 inputStream参数是由file 如果protectionPasswordProtection ,密码是通过调用getPassword方法获得的。 否则,如果protectionCallbackHandlerProtection ,则通过调用CallbackHandler获取密码。

        后续调用getKeyStore()返回与初始调用相同的对象。 如果初始调用失败并带有KeyStoreException,后续调用也会引发KeyStoreException。

        调用getProtectionParameter()将返回一个封装用于调用load方法的密码的PasswordProtection对象。

        请注意getKeyStore()方法是在调用此方法的代码的AccessControlContext内执行的。

        参数
        file - 包含KeyStore数据的文件
        protection - 保护KeyStore数据的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果文件或保护为空
        IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例; 或者如果文件不存在或不引用普通文件
        从以下版本开始:
        9
      • newInstance

        public static KeyStore.Builder newInstance​(String type,
                                                   Provider provider,
                                                   KeyStore.ProtectionParameter protection)
        返回一个新的Builder对象。

        每次调用返回的构建器上的getKeyStore()方法将返回一个新的KeyStore对象,类型为type load()方法使用封装protectionLoadStoreParameter调用。

        如果非空,KeyStore从provider实例化。 否则,将搜索所有安装的提供程序。

        致电getProtectionParameter()将返回protection

        请注意getKeyStore()方法在调用此方法的代码的AccessControlContext内执行。

        参数
        type - 要构建的KeyStore的类型
        provider - 要从其中实例化KeyStore的提供者(或为空)
        protection - 保护密钥库的ProtectionParameter
        结果
        一个新的Builder对象
        异常
        NullPointerException - 如果类型或保护为空