type=page
status=published
title=list-message-security-providers
next=list-modules.html
prev=list-managed-thread-factories.html
~~~~~~

= list-message-security-providers

[[list-message-security-providers-1]][[GSRFM00184]][[list-message-security-providers]]

== list-message-security-providers

Lists all security message providers for the given message layer

[[sthref1677]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-message-security-providers [--help]
--layer message_layer
[target]
----

[[sthref1678]]

=== Description

The `list-message-security-providers` subcommand enables administrators
to list all security message providers (`provider-config` sub-elements)
for the given message layer (`message-security-config` element of
`domain.xml`).

This subcommand is supported in remote mode only.

[[sthref1679]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--layer`::
  The message-layer for which the provider has to be listed. The default
  value is `HttpServlet`.

[[sthref1680]]

=== Operands

target::
  Restricts the listing to message security providers for a specific
  target. Valid values include:

  `server`;;
    Lists providers for the default server instance `server` and is the
    default value.
  `domain`;;
    Lists providers for the domain.
  cluster;;
    Lists providers for the server instances in the cluster.
  instance;;
    Lists providers for a particular server instance.

[[sthref1681]]

=== Examples

[[GSRFM684]][[sthref1682]]

==== Example 1   Listing message security providers

The following example shows how to list message security providers for a
message layer.

[source]
----
asadmin> list-message-security-providers
--layer SOAP
XWS_ClientProvider
ClientProvider
XWS_ServerProvider
ServerProvider
Command list-message-security-providers executed successfully.
----

[[sthref1683]]

=== Exit Status

0::
  command executed successfully
1::
  error in executing the command

[[sthref1684]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-message-security-provider.html#create-message-security-provider-1[`create-message-security-provider`(1)],
link:delete-message-security-provider.html#delete-message-security-provider-1[`delete-message-security-provider`(1)]


