模块  java.base
软件包  java.security

Class Provider.Service

  • Enclosing class:
    Provider

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

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

    此类定义方法supportsParameter()newInstance() ,Java安全框架在搜索合适的服务并实例化它们时使用这些方法。 这些方法的有效参数取决于服务类型。 有关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 - 如果provider,type,algorithm或className为null
    • 方法详细信息

      • 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()
        返回此服务的String表示形式。
        重写:
        toString in class Object
        结果
        此服务的String表示形式。