Module java.base
Package java.security

Class Provider.Service

java.lang.Object
java.security.Provider.Service
封装类:
Provider

public static class Provider.Service extends Object
安全服务的描述。它封装了服务的属性,并包含一个工厂方法,用于获取该服务的新实现实例。

每个服务都有一个提供者提供该服务,一个类型,一个算法名称,以及实现该服务的类的名称。可选地,它还包括此服务的替代算法名称列表(别名)和属性,这些属性是(名称,值)String对的映射。

该类定义了方法supportsParameter()newInstance(),当Java安全框架搜索合适的服务并实例化它们时会使用这些方法。这些方法的有效参数取决于服务的类型。有关Java SE中定义的服务类型,请参阅Java加密架构(JCA)参考指南以获取有效值。请注意,Java SE之外的组件可以定义额外类型的服务及其行为。

该类的实例是不可变的。

自Java版本:
1.5
  • Constructor Details

    • Service

      public Service(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,String> attributes)
      构造一个新服务。
      参数:
      provider - 提供此服务的提供者
      type - 此服务的类型
      algorithm - 算法名称
      className - 实现此服务的类的名称
      aliases - 别名列表或null(如果算法没有别名)
      attributes - 属性映射或null(如果此实现没有属性)
      抛出:
      NullPointerException - 如果提供者、类型、算法或类名为null
  • Method Details

    • getType

      public final String getType()
      获取此服务的类型。例如,MessageDigest
      返回:
      此服务的类型
    • getAlgorithm

      public final String getAlgorithm()
      返回此服务的算法名称。例如,SHA-1
      返回:
      此服务的算法
    • getProvider

      public final Provider getProvider()
      返回此服务的提供者。
      返回:
      此服务的提供者
    • getClassName

      public final String getClassName()
      返回实现此服务的类的名称。
      返回:
      实现此服务的类的名称
    • getAttribute

      public final String getAttribute(String name)
      返回指定属性的值,如果此属性未设置则返回null
      参数:
      name - 请求属性的名称
      返回:
      指定属性的值,如果属性不存在则返回null
      抛出:
      NullPointerException - 如果名称为null
    • newInstance

      public Object newInstance(Object constructorParameter) throws NoSuchAlgorithmException
      返回此服务描述的实现的新实例。安全提供者框架使用此方法来构造实现。应用程序通常不需要调用它。

      默认实现使用反射来调用此类型服务的标准构造函数。安全提供者可以重写此方法以不同的方式实现实例化。有关各种服务类型的有效构造参数的详细信息,请参阅Java加密架构(JCA)参考指南

      参数:
      constructorParameter - 传递给构造函数的值,如果此类型的服务不使用构造参数则为null
      返回:
      此服务的新实现
      抛出:
      InvalidParameterException - 如果构造参数的值对于此类型的服务无效
      NoSuchAlgorithmException - 如果由于任何其他原因实例化失败
    • supportsParameter

      public boolean supportsParameter(Object parameter)
      测试此服务是否可以使用指定参数。如果此服务无法使用参数则返回false。如果此服务可以使用参数,如果无法进行快速测试或状态未知则返回true

      安全提供者框架使用此方法来快速排除不匹配的实现以供考虑。应用程序通常不需要调用它。

      有关各种服务类型的有效参数值的详细信息,请参阅本类顶部和Java加密架构(JCA)参考指南。安全提供者可以重写它以实现自己的测试。

      参数:
      parameter - 要测试的参数
      返回:
      如果此服务无法使用指定参数则返回false;如果可以使用参数、无法使用快速测试或状态未知则返回true
      抛出:
      InvalidParameterException - 如果参数的值对于此类型的服务无效,或者此方法无法与此类型的服务一起使用
    • toString

      public String toString()
      返回此服务的String表示形式。
      覆盖:
      toString 在类 Object
      返回:
      此服务的String表示形式。