/*
 * ====================================================================
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */

package org.apache.http.client.config;

import org.apache.http.annotation.Immutable;

/**
 * Standard authentication schemes supported by HttpClient.
 *
 * @since 4.3
 */
@Immutable
public final class AuthSchemes {

    /**
     * Basic authentication scheme as defined in RFC2617 (considered inherently
     * insecure, but most widely supported)
     */
    public static final String BASIC = "Basic";

    /**
     * Digest authentication scheme as defined in RFC2617.
     */
    public static final String DIGEST = "Digest";

    /**
     * The NTLM scheme is a proprietary Microsoft Windows Authentication
     * protocol (considered to be the most secure among currently supported
     * authentication schemes).
     */
    public static final String NTLM = "NTLM";

    /**
     * SPNEGO Authentication scheme.
     */
    public static final String SPNEGO = "Negotiate";

    /**
     * Kerberos Authentication scheme.
     */
    public static final String KERBEROS = "Kerberos";

    private AuthSchemes() {
    }

}

@@ -1450,24 +1450,25 @@
 fined in RFC
+ 
 2617 (consid
@@ -1526,16 +1526,17 @@
 pported)
+.
 %0A     */
@@ -1646,16 +1646,17 @@
 d in RFC
+ 
 2617.%0A  
@@ -1736,16 +1736,31 @@
 he NTLM 
+authentication 
 scheme i
@@ -1792,18 +1792,25 @@
  Windows
- A
+%0A     * a
 uthentic
@@ -1814,23 +1814,16 @@
 tication
-%0A     *
  protoco
@@ -1823,16 +1823,183 @@
 protocol
+ as defined in %5BMS-NLMP%5D.%0A     */%0A    public static final String NTLM = %22NTLM%22;%0A%0A    /**%0A     * SPNEGO authentication scheme as defined in RFC 4559 and RFC 4178%0A     *
  (consid
@@ -2080,16 +2080,40 @@
  schemes
+ if Kerberos is selected
 ).%0A     
@@ -2142,36 +2142,43 @@
 inal String 
-NTLM = %22NTLM
+SPNEGO = %22Negotiate
 %22;%0A%0A    /**%0A
@@ -2188,16 +2188,18 @@
   * 
-SPNEGO A
+Kerberos a
 uthe
@@ -2218,97 +2218,107 @@
 heme
-.%0A     */%0A    public static final String SPNEGO = %22Negotiate%22;%0A%0A    /**%0A     * Kerberos A
+ as defined in RFC 4120%0A     * (considered to be the most secure among currently supported%0A     * a
 uthe
@@ -2333,16 +2333,18 @@
 n scheme
+s)
 .%0A     *

Improve docs on AuthSchemes