AdminTask 对象的 JaspiManagement 命令组

使用 JaspiManagement 命令组中的命令和参数来管理认证提供程序的配置。

注: WebSphere® Application Server 支持集成符合 JASPI for Containers V1.0 规范的消息认证提供程序。 使用 Jython 或 JACL 脚本编制语言通过 wsadmin 工具配置 Java™ 认证服务提供程序接口 (JASPI) 提供程序。

JASPI 是 Java Platform, Enterprise Edition 6 (Java EE 6) 中引入的新规范。 它使第三方安全性提供程序能够为特定消息传递运行时环境执行消息认证。 JASPI 使用标准化编程接口扩展 Java 认证和授权服务 (JAAS) 体系结构,以使网络消息可供认证服务提供者处理。

如果要使用 JASPI 消息认证服务,那么必须按 JASPI 规范中的定义提供所需接口的实现。 有关这些接口的更多信息,请参阅“开发定制认证提供程序”。

注: WebSphere Application Server V8.5 仅支持 JASPI 规范中定义的 Servlet 概要文件。

配置 JASPI 认证提供程序时,如果 WebSphere Application Server 接收到请求消息,那么安全运行时环境将确定是否将目标应用程序配置为使用 JASPI 认证。 如果已配置为使用 JASPI 认证,那么运行时环境将调用所选认证提供程序来验证接收到的消息。 否则,将根据 WebSphere Application Server 为相应消息传递层提供的认证机制来认证消息请求。

JaspiManagement 命令组包括下列命令:

configureJaspi

configureJaspi 命令用于指定是启用还是禁用 Java 认证 SPI 处理,以及为给定安全域或全局安全性配置设置缺省 JASPI 提供程序。

目标对象

无。

必需参数

无。

可选参数

-enabled
指定 true 以启用 JASPI 配置,或指定 false 以禁用该配置。
-defaultProviderName
指定已配置的 JASPI 提供程序的名称,它将用作安全域或全局安全性配置的缺省 JASPI 提供程序。
-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

此命令返回系统创建的 JASPI 配置标识的对象名,该对象名是 javax.management.ObjectName 的实例。 控制台中显示的值是 JASPI 配置标识。

批处理方式示例用法

使用 Jython:
AdminTask.configureJaspi('[-enabled true -defaultProviderName testProvider]')
使用 Jacl:
$AdminTask configureJaspi {-enabled true -defaultProviderName testProvider}

交互方式示例用法

使用 Jython:
AdminTask.configureJaspi('-interactive')
使用 Jacl:
$AdminTask configureJaspi -interactive

defineJaspiProvider

defineJaspiProvider 命令为给定安全域或全局安全性配置配置新的认证提供程序。

目标对象

无。

必需参数

-providerName
指定唯一地标识认证提供程序的名称。
-className
指定类的包限定名称,该类实现认证提供程序接口 (javax.security.auth.message.config.AuthConfigProvider)。

可选参数

-description
指定认证提供程序的文本描述。
-properties
指定对认证提供程序进行初始化所需的其他定制配置属性。 此参数是键/值对的列表。
-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

此命令返回认证服务提供者配置属性及其值的映射,该映射是包含认证服务提供者配置属性的 java.util.Map<java.lang.String, java.lang.Object> 的实例。 控制台中显示的值是该映射的 toString() 方法的返回值。

批处理方式示例用法

注: 为了清晰起见,命令显示在多行中; 必须在单行中输入。
使用 Jython:
AdminTask.defineJaspiProvider('-providerName jaspi_provider  
-className com.ibm.sample.JaspiProvider -description "Sample authentication provider"  
-properties [ [debug true] [user admin] ] ')
使用 Jacl:
$AdminTask defineJaspiProvider {  -providerName jaspi_provider 
-className com.ibm.JASPIProvider  -description "Sample authentication provider" 
-properties {  {debug true} {user admin}  } }

交互方式示例用法

使用 Jython:
AdminTask.defineJaspiProvider('-interactive')
使用 Jacl:
$AdminTask defineJaspiProvider -interactive

displayJaspiProvider

displayJaspiProvider 命令显示给定安全域或全局安全性配置的一个或多个给定认证提供程序的配置数据。

目标对象

无。

必需参数

-providerName
指定要显示的认证提供程序的唯一名称。

可选参数

-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

此命令显示指定的提供程序及其配置属性和值。 返回的数据显示为 java.util.Collection<java.util.Map<java.lang.String, java.lang.Object>> 的实例。 每个映射实例都包含认证提供程序的配置属性。 控制台中显示的值是该集合的 toString() 方法的返回值。

批处理方式示例用法

使用 Jython:
AdminTask.displayJaspiProvider('-providerName jaspi_provider')
使用 Jacl:
$AdminTask displayJaspiProvider {'-providerName jaspi_provider'}

交互方式示例用法

使用 Jython:
AdminTask.displayJaspiProvider('-interactive')
使用 Jacl:
$AdminTask displayJaspiProvider -interactive

displayJaspiProviderNames

displayJaspiProviderNames 命令显示安全性配置中认证提供程序的名称。 当提供了 securityDomainName 参数时,将仅显示给定安全域中的那些提供程序。 当未提供 securityDomainName 参数时,将仅显示全局安全性配置中提供程序的名称。

当提供了 securityDomainName 参数并且 getEffectiveProviderNames 参数已设置为 true 时,只要启用了 JASPI 支持,就会显示给定安全域和全局安全性配置中的认证提供程序名称列表。
注: 组合列表不包含重复的提供者名称。 例如,如果给定的安全域配置具有提供程序名称 p1、p2 和 p3,而全局安全性配置具有提供程序名称 p3、p4 和 p5,那么提供程序名称的组合列表包含 p1、p2、p3、p4 和 p5。

当提供了 securityDomainName 参数并且 getEffectiveProviderNames 参数已设置为 false 时,仅会显示给定安全域的认证提供程序列表。 getEffectiveProviderNames 参数仅在与 securityDomainName 参数配合使用时才有效果;如果未提供 securityDomainName 提供程序,那么将忽略该参数。

目标对象

无。

必需参数

无。

可选参数

-getEffectiveProviderNames
指定 true 以获取有效认证提供程序名称的列表,或指定 false 以仅获取安全域配置的认证提供程序列表。 getEffectiveProviderName 的缺省值是 false
-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

此命令返回 JASPI 提供程序名称列表。 返回的数据显示为 java.util.Collection<java.lang.String> 的实例。

批处理方式示例用法

使用 Jython:
AdminTask.displayJaspiProviderNames()
使用 Jacl:
$AdminTask displayJaspiProviderNames

交互方式示例用法

使用 Jython:
AdminTask.displayJaspiProviderNames('-interactive')
使用 Jacl:
$AdminTask displayJaspiProviderNames -interactive

getJaspiInfo

getJaspiInfo 命令显示关于给定安全域或全局安全性配置的 JASPI 配置的信息。

目标对象

无。

必需参数

无。

可选参数

-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

此命令返回是否启用 Java 认证 SPI 处理的指示。 如果对特定安全域发出此命令并且对该域定制了值,那么此命令返回一个值以指示是否启用了 JASPI 处理功能。 如果对特定域发出此命令并且未对该域定制值,那么此命令返回一个空列表,以指示该配置将继承全局安全性配置。 返回的数据显示为包含 JASPI 配置属性的 java.util.Map<java.lang.String, java.lang.Object> 的实例。 控制台中显示的值是该映射的 toString() 方法的返回值。

此外,此命令会返回为缺省提供程序配置的值。 例如:
wsadmin>$AdminTask getJaspiInfo
{defaultProviderName=null, enabled=false}

批处理方式示例用法

使用 Jython:
AdminTask.getJaspiInfo()
使用 Jacl:
$AdminTask getJaspiInfo

交互方式示例用法

使用 Jython:
AdminTask.getJaspiInfo('-interactive')
使用 Jacl:
$AdminTask getJaspiInfo -interactive

modifyJaspiProvider

modifyJaspiProvider 命令修改给定安全域或全局安全性配置的给定认证提供程序的配置数据。

目标对象

无。

必需参数

-providerName
指定唯一地标识认证提供程序的名称。

可选参数

-className
指定类的包限定名称,该类实现认证提供程序接口 (javax.security.auth.message.config.AuthConfigProvider)。
-description
指定认证提供程序的文本描述。
-properties
指定对认证提供程序进行初始化所需的其他定制配置属性。 此参数是键/值对的列表。
-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

java.util.Map<java.lang.String, java.lang.Object> 的实例,它包含给定的认证服务提供者或任何给定的相关联认证模块中任何已修改的配置属性。 控制台中显示的值是该映射的 toString() 方法的返回值。

批处理方式示例用法

使用 Jython:
AdminTask.modifyJaspiProvider('-providerName jaspi_provider 
-properties [ [debug false] ] 	')
使用 Jacl:
$AdminTask modifyJaspiProvider { -providerName jaspi_provider  
-properties { {debug false} } }

交互方式示例用法

使用 Jython:
AdminTask.modifyJaspiProvider('-interactive')
使用 Jacl:
$AdminTask modifyJaspiProvider -interactive

removeJaspiProvider

removeJaspiProvider 命令从给定安全域的安全性配置或全局安全性配置中除去一个或多个认证提供程序。

目标对象

无。

必需参数

-providerName
指定要除去的认证提供程序的唯一名称。

可选参数

-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

返回值

无。

批处理方式示例用法

要使用 Jython 除去单个提供程序:
AdminTask.removeJaspiProvider('-providerName jaspi_provider')
要使用 Jython 除去多个提供程序:
AdminTask.removeJaspiProvider( '[-providerName [ Provider1;Provider2 ] ]' )
要使用 Jacl 除去单个用户:
$AdminTask removeJaspiProvider {'-providerName jaspi_provider'}
要使用 Jacl 除去多个提供程序:
$AdminTask removeJaspiProvider {-providerName {Provider1 Provider2 } }

交互方式示例用法

使用 Jython:
AdminTask.removeJaspiProvider('-interactive')
使用 Jacl:
$AdminTask removeJaspiProvider -interactive

unconfigureJaspi

unconfigureJaspi 命令用于从安全域中除去 JASPI 配置及其所有相关联的提供程序。

目标对象

无。

必需参数

-securityDomainName
指定安全域的名称。 如果您未对 -securityDomainName 参数指定值,那么该命令将使用全局安全性配置。

可选参数

无。

返回值

无。

批处理方式示例用法

使用 Jython:
AdminTask.unconfigureJaspi('-securityDomainName domain1')
使用 Jacl:
$AdminTask unconfigureJaspi {-securityDomainName domain1}

交互方式示例用法

使用 Jython:
AdminTask.unconfigureJaspi('-interactive')
使用 Jacl:
$AdminTask unconfigureJaspi -interactive