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


