java.security

接口
异常
java.lang.Object
  继承者 java.security.Provider.Service
正在封闭类:
Provider

public static class Provider.Service
     
extends Object

安全服务的描述。它封装服务的属性并包含获得此服务新的实现实例的一个工厂方法。

每个服务都有一个提供者,它提供服务、类型、算法名称和实现该服务的类的名称。它也可以选择包括此服务(别名)和属性的替换算法名称列表,该列表是 (name, value) String 对的映射表。

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

此类的实例是不可变的。

从以下版本开始:
1.5

构造方法摘要
Provider.Service(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,String> attributes)
          构造新的服务。
 
方法摘要
 String getAlgorithm()
          返回此服务的算法的名称。
 String getAttribute(String name)
          返回指定属性的值,如果没有为此 Service 设置此属性,则返回 null。
 String getClassName()
          返回实现此服务的类的名称。
 Provider getProvider()
          返回此服务的 Provider。
 String getType()
          获取此服务的类型。
 Object newInstance(Object constructorParameter)
          返回此服务描述的实现的新实例。
 boolean supportsParameter(Object parameter)
          测试此 Service 是否能使用指定的参数。
 String toString()
          返回此服务的字符串表示形式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

Provider.Service

public Provider.Service(Provider provider,
                        String type,
                        String algorithm,
                        String className,
                        List<String> aliases,
                        Map<String,String> attributes)
构造新的服务。

参数:
provider - 提供此服务的提供者
type - 此服务的类型
algorithm - 算法名称
className - 实现此服务的类的名称
aliases - 别名的列表,如果算法没有别名则为 null
attributes - 属性的 Map,如果此实现没有属性则为 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()
返回此服务的 Provider。

返回:
此服务的 Provider。

getClassName

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

返回:
实现此服务的类的名称。

getAttribute

public final String getAttribute(String name)
返回指定属性的值,如果没有为此 Service 设置此属性,则返回 null。

参数:
name - 请求的属性的名称
返回:
指定的属性的值,如果属性不存在则返回 null
抛出:
NullPointerException - 如果 name 为 null

newInstance

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

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

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

supportsParameter

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

安全提供者框架用一些服务类型作为参数使用此方法来快速排除所考虑实现中的不匹配项。应用程序通常不需要调用它。

有关详细信息和各种服务类型的有效参数值,请参见此类的顶部和 Java Cryptography Architecture API Specification & Reference。安全提供者可以重写它以实现自己的测试。

参数:
parameter - 要测试的参数。
返回:
如果此服务不能使用指定的参数返回 false;如果它可能使用该参数返回 true
抛出:
InvalidParameterException - 如果参数值对于此服务类型无效或此方法不能随此服务类型一同使用。

toString

public String toString()
返回此服务的字符串表示形式。

覆盖:
Object 中的 toString
返回:
此服务的字符串表示形式