AuthPolicy (HttpClient Library (Version 3.1))
Date: 2019-09-02

org.apache.commons.httpclient.auth

## Class AuthPolicy

- java.lang.Object
- - org.apache.commons.httpclient.auth.AuthPolicy

-     public abstract class AuthPolicy
      extends java.lang.Object

  Authentication policy class. The Authentication policy provides corresponding authentication scheme interfrace for a given type of authorization challenge.

  The following specifications are provided:

  - `Basic`: Basic authentication scheme as defined in RFC2617 (considered inherently insecure, but most widely supported)
  - `Digest`: Digest authentication scheme as defined in RFC2617
  - `NTLM`: The NTLM scheme is a proprietary Microsoft Windows Authentication protocol (considered to be the most secure among currently supported authentication schemes)
  Since:
    3.0
  Version:
    $Revision: 480424 $
  Author:
    Oleg Kalnichevski

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `AUTH_SCHEME_PRIORITY` The key used to look up the list of IDs of supported `authentication schemes` in their order of preference.
    `static java.lang.String` | `BASIC` Basic authentication scheme as defined in RFC2617 (considered inherently insecure, but most widely supported)
    `static java.lang.String` | `DIGEST` Digest authentication scheme as defined in RFC2617.
    `protected static Log` | `LOG` Log object.
    `static java.lang.String` | `NTLM` The NTLM scheme is a proprietary Microsoft Windows Authentication protocol (considered to be the most secure among currently supported authentication schemes).

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AuthPolicy()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static AuthScheme` | `getAuthScheme(java.lang.String id)` Gets the `authentication scheme` with the given ID.
    `static java.util.List` | `getDefaultAuthPrefs()` Returns a list containing all registered `authentication schemes` in their default order.
    `static void` | `registerAuthScheme(java.lang.String id, java.lang.Class clazz)` Registers a class implementing an `authentication scheme` with the given identifier.
    `static void` | `unregisterAuthScheme(java.lang.String id)` Unregisters the class implementing an `authentication scheme` with the given ID.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### AUTH_SCHEME_PRIORITY

          public static final java.lang.String AUTH_SCHEME_PRIORITY

      The key used to look up the list of IDs of supported `authentication schemes` in their order of preference. The scheme IDs are stored in a `Collection` as `String`s.

      If several schemes are returned in the `WWW-Authenticate` or `Proxy-Authenticate` header, this parameter defines which `authentication schemes` takes precedence over others. The first item in the collection represents the most preferred `authentication scheme`, the last item represents the ID of the least preferred one.

      See Also:
        `DefaultHttpParams`, Constant Field Values

    - #### NTLM

          public static final java.lang.String NTLM

      The NTLM scheme is a proprietary Microsoft Windows Authentication protocol (considered to be the most secure among currently supported authentication schemes).
      See Also:
        Constant Field Values

    - #### DIGEST

          public static final java.lang.String DIGEST

      Digest authentication scheme as defined in RFC2617.
      See Also:
        Constant Field Values

    - #### BASIC

          public static final java.lang.String BASIC

      Basic authentication scheme as defined in RFC2617 (considered inherently insecure, but most widely supported)
      See Also:
        Constant Field Values

    - #### LOG

          protected static final Log LOG

      Log object.

  - ### Constructor Detail

    - #### AuthPolicy

          public AuthPolicy()

  - ### Method Detail

    - #### registerAuthScheme

          public static void registerAuthScheme(java.lang.String id,
                                                java.lang.Class clazz)

      Registers a class implementing an `authentication scheme` with the given identifier. If a class with the given ID already exists it will be overridden. This ID is the same one used to retrieve the `authentication scheme` from `getAuthScheme(String)`.

      Please note that custom authentication preferences, if used, need to be updated accordingly for the new `authentication scheme` to take effect.

      Parameters:
        `id` - the identifier for this scheme
        `clazz` - the class to register
      See Also:
        `getAuthScheme(String)`, `AUTH_SCHEME_PRIORITY`

    - #### unregisterAuthScheme

          public static void unregisterAuthScheme(java.lang.String id)

      Unregisters the class implementing an `authentication scheme` with the given ID.
      Parameters:
        `id` - the ID of the class to unregister

    - #### getAuthScheme

          public static AuthScheme getAuthScheme(java.lang.String id)
                                          throws java.lang.IllegalStateException

      Gets the `authentication scheme` with the given ID.
      Parameters:
        `id` - the `authentication scheme` ID
      Returns:
        `authentication scheme`
      Throws:
        `java.lang.IllegalStateException` - if a scheme with the ID cannot be found

    - #### getDefaultAuthPrefs

          public static java.util.List getDefaultAuthPrefs()

      Returns a list containing all registered `authentication schemes` in their default order.
      Returns:
        `authentication scheme`

Copyright (c) 1999-2005 - Apache Software Foundation