java.lang.Object
java.security.Provider.Service
- 封装类:
-
Provider
安全服务的描述。它封装了服务的属性,并包含一个工厂方法,用于获取该服务的新实现实例。
每个服务都有一个提供者提供该服务,一个类型,一个算法名称,以及实现该服务的类的名称。可选地,它还包括此服务的替代算法名称列表(别名)和属性,这些属性是(名称,值)String
对的映射。
该类定义了方法supportsParameter()
和newInstance()
,当Java安全框架搜索合适的服务并实例化它们时会使用这些方法。这些方法的有效参数取决于服务的类型。有关Java SE中定义的服务类型,请参阅Java加密架构(JCA)参考指南以获取有效值。请注意,Java SE之外的组件可以定义额外类型的服务及其行为。
该类的实例是不可变的。
- 自Java版本:
- 1.5
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal String
返回此服务的算法名称。final String
getAttribute
(String name) 返回指定属性的值,如果此属性未设置则返回null
。final String
返回实现此服务的类的名称。final Provider
返回此服务的提供者。final String
getType()
获取此服务的类型。newInstance
(Object constructorParameter) 返回此服务描述的实现的新实例。boolean
supportsParameter
(Object parameter) 测试此服务是否可以使用指定参数。toString()
返回此服务的String
表示形式。
-
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
获取此服务的类型。例如,MessageDigest
。- 返回:
- 此服务的类型
-
getAlgorithm
返回此服务的算法名称。例如,SHA-1
。- 返回:
- 此服务的算法
-
getProvider
返回此服务的提供者。- 返回:
- 此服务的提供者
-
getClassName
返回实现此服务的类的名称。- 返回:
- 实现此服务的类的名称
-
getAttribute
返回指定属性的值,如果此属性未设置则返回null
。- 参数:
-
name
- 请求属性的名称 - 返回:
-
指定属性的值,如果属性不存在则返回
null
- 抛出:
-
NullPointerException
- 如果名称为null
-
newInstance
返回此服务描述的实现的新实例。安全提供者框架使用此方法来构造实现。应用程序通常不需要调用它。默认实现使用反射来调用此类型服务的标准构造函数。安全提供者可以重写此方法以不同的方式实现实例化。有关各种服务类型的有效构造参数的详细信息,请参阅Java加密架构(JCA)参考指南。
- 参数:
-
constructorParameter
- 传递给构造函数的值,如果此类型的服务不使用构造参数则为null
。 - 返回:
- 此服务的新实现
- 抛出:
-
InvalidParameterException
- 如果构造参数的值对于此类型的服务无效 -
NoSuchAlgorithmException
- 如果由于任何其他原因实例化失败
-
supportsParameter
测试此服务是否可以使用指定参数。如果此服务无法使用参数则返回false
。如果此服务可以使用参数,如果无法进行快速测试或状态未知则返回true
。安全提供者框架使用此方法来快速排除不匹配的实现以供考虑。应用程序通常不需要调用它。
有关各种服务类型的有效参数值的详细信息,请参阅本类顶部和Java加密架构(JCA)参考指南。安全提供者可以重写它以实现自己的测试。
- 参数:
-
parameter
- 要测试的参数 - 返回:
-
如果此服务无法使用指定参数则返回
false
;如果可以使用参数、无法使用快速测试或状态未知则返回true
- 抛出:
-
InvalidParameterException
- 如果参数的值对于此类型的服务无效,或者此方法无法与此类型的服务一起使用
-
toString
返回此服务的String
表示形式。
-