Module  java.base
软件包  java.security

Class Provider.Service

  • Enclosing class:
    Provider


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

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

    该类定义了Java安全框架在搜索合适的服务并实例化时使用的方法supportsParameter()newInstance() 这些方法的有效参数取决于服务的类型。 有关Java SE中定义的服务类型,请参阅Java Cryptography Architecture (JCA) Reference Guide有效值。 请注意,Java SE之外的组件可以定义其他类型的服务及其行为。

    这个类的实例是不可变的。

    从以下版本开始:
    1.5
    • 构造方法详细信息

      • 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 - 如果提供程序,类型,算法或className为空
    • 方法详细信息

      • 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 - 如果name为null
      • newInstance

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

        默认实现使用反射来调用此类服务的标准构造函数。 安全提供者可以重写此方法以不同的方式实现实例化。 有关对各种类型服务有效的constructorParameter的详细信息和值,请参见Java Cryptography Architecture (JCA) Reference Guide

        参数
        constructorParameter - 传递给构造函数的值,如果此类型的服务不使用constructorParameter,则为null。
        结果
        这项服务的新实施
        异常
        InvalidParameterException - 如果此类型的服务的constructorParameter的值无效。
        NoSuchAlgorithmException - 如果由于任何其他原因实例化失败。
      • supportsParameter

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

        安全提供程序框架使用这种方法与某些类型的服务来快速排除不匹配的实现以供考虑。 应用程序通常不需要调用它。

        有关各种类型服务的详细信息和参数值参见本类的顶部和Java Cryptography Architecture (JCA) Reference Guide 安全提供商可以覆盖它来实现自己的测试。

        参数
        parameter - 要测试的参数
        结果
        如果此服务不能使用指定的参数,则为false; 如果可以使用参数,则为true
        异常
        InvalidParameterException - 如果参数的值对于此类型的服务无效,或者该方法不能与此类型的服务一起使用
      • toString

        public String toString​()
        返回此服务的字符串表示形式。
        重写:
        toStringObject
        结果
        此服务的字符串表示形式。