Module java.base
Package java.security

Class KeyStore.Builder

java.lang.Object
java.security.KeyStore.Builder
封装类:
KeyStore

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

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

这样可以将配置与KeyStore对象的创建分离,例如,直到需要密码提示为止。

自JDK版本:
1.5
参见:
  • Constructor Details

    • Builder

      protected Builder()
      构造一个新的Builder
  • Method Details

    • getKeyStore

      public abstract KeyStore getKeyStore() throws KeyStoreException
      返回此对象描述的KeyStore
      返回:
      此对象描述的KeyStore
      抛出:
      KeyStoreException - 如果操作期间发生错误,例如无法实例化或加载KeyStore
    • getProtectionParameter

      public abstract KeyStore.ProtectionParameter getProtectionParameter(String alias) throws KeyStoreException
      返回应该用于获取具有给定别名的EntryProtectionParameter。必须在调用此方法之前调用getKeyStore方法。
      参数:
      alias - KeyStore条目的别名
      返回:
      应该用于获取具有给定别名的EntryProtectionParameter
      抛出:
      NullPointerException - 如果别名为null
      KeyStoreException - 如果操作期间发生错误
      IllegalStateException - 如果在调用此方法之前未调用getKeyStore方法
    • newInstance

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

      如果需要将现有KeyStore对象与基于构建器的API一起使用,则此方法很有用。

      参数:
      keyStore - 要封装的KeyStore
      protectionParameter - 用于保护KeyStore条目的ProtectionParameter
      返回:
      一个新的Builder对象
      抛出:
      NullPointerException - 如果keyStoreprotectionParameternull
      IllegalArgumentException - 如果keyStore未初始化
    • newInstance

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

      返回的构建器上第一次调用getKeyStore()方法将创建一个类型为typeKeyStore对象,并调用其load()方法。 inputStream参数是从file构造的。如果protectionPasswordProtection,则通过调用getPassword方法获取密码。否则,如果protectionCallbackHandlerProtection,则通过调用回调处理程序获取密码。

      getKeyStore()的后续调用将返回与初始调用相同的对象。如果初始调用由于KeyStoreException失败,则后续调用也会抛出KeyStoreException

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

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

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

      参数:
      type - 要构造的KeyStore的类型
      provider - 用于实例化KeyStore的提供程序(或null
      file - 包含KeyStore数据的文件
      protection - 保护KeyStore数据的ProtectionParameter
      返回:
      一个新的Builder对象
      抛出:
      NullPointerException - 如果类型、文件或保护为null
      IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例;或者如果文件不存在或不是普通文件
    • newInstance

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

      返回的构建器上第一次调用getKeyStore()方法将使用file检测密钥库类型并调用其load()方法。它使用与KeyStore.getInstance(File, LoadStoreParameter)中描述的相同算法来确定密钥库类型。 inputStream参数是从file构造的。如果protectionPasswordProtection,则通过调用getPassword方法获取密码。否则,如果protectionCallbackHandlerProtection,则通过调用回调处理程序获取密码。

      getKeyStore()的后续调用将返回与初始调用相同的对象。如果初始调用由于KeyStoreException失败,则后续调用也会抛出KeyStoreException

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

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

      参数:
      file - 包含KeyStore数据的文件
      protection - 保护KeyStore数据的ProtectionParameter
      返回:
      一个新的Builder对象
      抛出:
      NullPointerException - 如果文件或保护为null
      IllegalArgumentException - 如果保护不是PasswordProtection或CallbackHandlerProtection的实例;或者如果文件不存在或不是普通文件
      自JDK版本:
      9
    • newInstance

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

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

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

      调用getProtectionParameter()将返回protection

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

      参数:
      type - 要构造的KeyStore的类型
      provider - 用于实例化KeyStore的提供程序(或null
      protection - 保护KeyStore数据的ProtectionParameter
      返回:
      一个新的Builder对象
      抛出:
      NullPointerException - 如果类型或保护为null