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
{productName} Admin Console or the `create-jacc-provider`
subcommand.

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

The JACC provider used by{productName} 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 {productName}.

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)]


