type=page
status=published
title=list-protocol-filters
next=list-protocol-finders.html
prev=list-persistence-types.html
~~~~~~

= list-protocol-filters

[[list-protocol-filters-1]][[GSRFM00193]][[list-protocol-filters]]

== list-protocol-filters

Lists the existing protocol filters

[[sthref1750]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-protocol-filters [--help]
[--target server]
protocol-name
----

[[sthref1751]]

=== Description

The `list-protocol-filters` subcommand lists the existing protocol
filters. This subcommand is supported in remote mode only.

[[sthref1752]]

=== 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.
target::
  Restricts the listing to protocol filters for a specified target.
  Valid values are as follows:

  `server`;;
    Lists the protocol filters for the default server instance. This is
    the default value.
  configuration-name;;
    Lists the protocol filters for the specified configuration.
  cluster-name;;
    Lists the protocol filters for all server instances in the specified
    cluster.
  instance-name;;
    Lists the protocol filters for the specified server instance.

[[sthref1753]]

=== Operands

protocol-name::
  The name of the protocol for which to list protocol filters.

[[sthref1754]]

=== Examples

[[GSRFM704]][[sthref1755]]

==== Example 1   Listing Protocol Filters

The following command lists all the protocol filters for the server
instance:

[source]
----
asadmin> list-protocol-filters http1
http1-filter
https1-filter
Command list-protocol-filters executed successfully.
----

[[sthref1756]]

=== Exit Status

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

[[sthref1757]]

=== See Also

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

link:create-protocol-filter.html#create-protocol-filter-1[`create-protocol-filter`(1)],
link:delete-protocol-filter.html#delete-protocol-filter-1[`delete-protocol-filter`(1)]


