type=page
status=published
title=delete-jacc-provider
next=delete-javamail-resource.html
prev=delete-instance.html
~~~~~~

delete-jacc-provider
====================

[[delete-jacc-provider-1]][[GSRFM00086]][[delete-jacc-provider]]

delete-jacc-provider
--------------------

Enables administrators to delete JACC providers defined for a domain

[[sthref761]]

=== Synopsis

[source]
----
asadmin [asadmin-options] delete-jacc-provider [--help]
[--target target] jacc-provider-name
----

[[sthref762]]

=== Description

The `delete-jacc-provider` subcommand enables administrators to delete
JACC providers defined for a domain. JACC providers are defined as
`jacc-provider` elements in the `security-service` element in the
domain's `domain.xml` file. JACC providers can be created using the
\{product---name} Admin Console or the `create-jacc-provider`
subcommand.

The default \{product---name} installation includes two JACC providers,
named `default` and `simple`. These default providers should not be
deleted.

The JACC provider used by\{product---name} for authorization is
identified by the `jacc-provider` element of `security-service` in
`domain.xml`. Therefore, if you delete the `jacc-provider` provider,
make sure you change `jacc-provider` to the name of some other JACC
provider that exists under `security-service`.

If you change the `jacc-provider` element to point to a different JACC
provider, you must restart \{product---name}.

This subcommand is supported in remote mode only.

[[sthref763]]

=== Options

If an option has a short option name, then the short option precedes the
long option name. Short options have one dash whereas long options have
two dashes.

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`::
  Specifies the target from which you are deleting the JACC provider.
  The following values are valid:

  `server`;;
    Deletes the JACC provider on the default server instance. This is
    the default value.
  configuration_name;;
    Deletes the JACC provider in the specified configuration.
  cluster_name;;
    Deletes the JACC provider on all server instances in the specified
    cluster.
  instance_name;;
    Deletes the JACC provider on a specified server instance.

[[sthref764]]

=== Operands

jacc-provider-name::
  The name of the JACC provider to be deleted.

[[sthref765]]

=== Examples

[[GSRFM554]][[sthref766]]

==== Example 1   Deleting a JACC provider

The following example shows how to delete a JACC provider named
`testJACC` from the default domain.

[source]
----
asadmin> delete-jacc-provider testJACC

Command delete-jacc-provider executed successfully.
----

[[sthref767]]

=== Exit Status

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

[[sthref768]]

=== See Also

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

link:create-jacc-provider.html#create-jacc-provider-1[`create-jacc-provider`(1)],
link:list-jacc-providers.html#list-jacc-providers-1[`list-jacc-providers`(1)]


