public static class Provider.Service extends Object
每个服务都有一个提供服务的提供者,一个类型,算法名称和实现该服务的类的名称。 可选地,它还包括此服务(别名)和属性的替代算法名称列表,它们是(名称,值)字符串对的映射。
该类定义了Java安全框架在搜索合适的服务并实现它们时被Java安全框架使用的方法supportsParameter()
和newInstance()
。 这些方法的有效参数取决于服务的类型。 有关Java SE中定义的服务类型,请参阅Java Cryptography Architecture API Specification & Reference有效值。 请注意,Java SE之外的组件可以定义其他类型的服务及其行为。
这个类的实例是不可变的。
Constructor and Description |
---|
Service(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,String> attributes)
构建新服务
|
Modifier and Type | Method and Description |
---|---|
String |
getAlgorithm()
返回此服务的算法的名称。
|
String |
getAttribute(String name)
返回指定属性的值,如果未为此服务设置此属性,则返回null。
|
String |
getClassName()
返回实现此服务的类的名称。
|
Provider |
getProvider()
返回此服务的提供者。
|
String |
getType()
获取此服务的类型。
|
Object |
newInstance(Object constructorParameter)
返回此服务描述的实现的新实例。
|
boolean |
supportsParameter(Object parameter)
测试此服务是否可以使用指定的参数。
|
String |
toString()
返回此服务的String表示。
|
public Service(Provider provider, String type, String algorithm, String className, List<String> aliases, Map<String,String> attributes)
provider
- 提供此服务的提供商
type
- 此服务的类型
algorithm
- 算法名称
className
- 实现此服务的类的名称
aliases
- 如果算法没有别名,别名列表或null
attributes
-
attributes
映射,如果此实现没有属性,则为null
NullPointerException
- 如果提供程序,类型,算法或className为空
public final String getType()
MessageDigest
。
public final String getAlgorithm()
SHA-1
。
public final Provider getProvider()
public final String getClassName()
public final String getAttribute(String name)
name
- 所请求属性的名称
NullPointerException
- 如果name为null
public Object newInstance(Object constructorParameter) throws NoSuchAlgorithmException
默认实现使用反射来调用此类服务的标准构造函数。 安全提供者可以重写此方法以不同的方式实现实例化。 有关对各种类型服务有效的constructorParameter的详细信息和值,请参见Java Cryptography Architecture API Specification & Reference 。
constructorParameter
- 传递给
constructorParameter
的值,如果此类型的服务不使用constructorParameter,则为null。
InvalidParameterException
- 如果此类型的服务的constructorParameter的值无效。
NoSuchAlgorithmException
- 如果任何其他原因的实例失败。
public boolean supportsParameter(Object parameter)
安全提供程序框架使用这种方法与某些类型的服务来快速排除不匹配的实现以供考虑。 应用程序通常不需要调用它。
有关各种类型服务的详细信息和参数值,请参见本类的顶部和Java Cryptography Architecture API Specification & Reference 。 安全提供商可以覆盖它来实现自己的测试。
parameter
- 要测试的参数
InvalidParameterException
- 如果参数的值对于此类型的服务无效或者该方法不能与此类型的服务一起使用