type=page
status=published
title=create-protocol-filter
next=create-protocol-finder.html
prev=create-protocol.html
~~~~~~

= create-protocol-filter

[[create-protocol-filter-1]][[GSRFM00052]][[create-protocol-filter]]

== create-protocol-filter

Adds a new protocol filter

[[sthref497]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-protocol-filter [--help]
--protocol protocol-name
--classname class-name
[--target server]
protocol-filter-name
----

[[sthref498]]

=== Description

The `create-protocol-filter` subcommand creates a protocol filter for a
protocol. This subcommand is supported in remote mode only.

[[sthref499]]

=== 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.
`--protocol`::
  The name of the associated protocol.
`--classname`::
  The fully qualified name of the Java class that implements the
  protocol filter.
`--target`::
  Creates the protocol filter only on the specified target. Valid values
  are as follows:

  `server`;;
    Creates the protocol filter on the default server instance. This is
    the default value.
  configuration-name;;
    Creates the protocol filter in the specified configuration.
  cluster-name;;
    Creates the protocol filter on all server instances in the specified
    cluster.
  standalone-instance-name;;
    Creates the protocol filter on the specified standalone server
    instance.

[[sthref500]]

=== Operands

protocol-filter-name::
  The name of the protocol filter.

[[sthref501]]

=== Examples

[[GSRFM518]][[sthref502]]

==== Example 1   Creating a Protocol Filter

The following command creates a protocol filter named `http1-filter`:

[source]
----
asadmin> create-protocol-filter --protocol http1
--classname com.company22.MyProtocolFilter http1-filter
Command create-protocol-filter executed successfully.
----

[[sthref503]]

=== Exit Status

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

[[sthref504]]

=== See Also

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

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


