View Javadoc
1 /* 2 * $Header: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/AuthScheme.java,v 1.4.2.1 2003/12/10 20:44:38 olegk Exp $ 3 * $Revision: 1.4.2.1 $ 4 * $Date: 2003/12/10 20:44:38 $ 5 * 6 * ==================================================================== 7 * 8 * The Apache Software License, Version 1.1 9 * 10 * Copyright (c) 2002-2003 The Apache Software Foundation. All rights 11 * reserved. 12 * 13 * Redistribution and use in source and binary forms, with or without 14 * modification, are permitted provided that the following conditions 15 * are met: 16 * 17 * 1. Redistributions of source code must retain the above copyright 18 * notice, this list of conditions and the following disclaimer. 19 * 20 * 2. Redistributions in binary form must reproduce the above copyright 21 * notice, this list of conditions and the following disclaimer in 22 * the documentation and/or other materials provided with the 23 * distribution. 24 * 25 * 3. The end-user documentation included with the redistribution, if 26 * any, must include the following acknowlegement: 27 * "This product includes software developed by the 28 * Apache Software Foundation (http://www.apache.org/)." 29 * Alternately, this acknowlegement may appear in the software itself, 30 * if and wherever such third-party acknowlegements normally appear. 31 * 32 * 4. The names "The Jakarta Project", "Commons", and "Apache Software 33 * Foundation" must not be used to endorse or promote products derived 34 * from this software without prior written permission. For written 35 * permission, please contact apache@apache.org. 36 * 37 * 5. Products derived from this software may not be called "Apache" 38 * nor may "Apache" appear in their names without prior written 39 * permission of the Apache Group. 40 * 41 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 42 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 43 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 44 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 45 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 46 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 47 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 48 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 49 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 50 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 51 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 52 * SUCH DAMAGE. 53 * ==================================================================== 54 * 55 * This software consists of voluntary contributions made by many 56 * individuals on behalf of the Apache Software Foundation. For more 57 * information on the Apache Software Foundation, please see 58 * <http://www.apache.org/>. 59 * 60 * [Additional notices, if required by prior licensing conditions] 61 * 62 */ 63 64 package org.apache.commons.httpclient.auth; 65 66 import org.apache.commons.httpclient.Credentials; 67 68 /*** 69 * <p> 70 * This interface represents an abstract authentication scheme. 71 * </p> 72 * <p> 73 * An authentication scheme should be able to support the following 74 * functions: 75 * <ul> 76 * <li>Provide its textual designation 77 * <li>Provide its parameters, if available 78 * <li>Provide the realm this authentication scheme is applicable to, 79 * if available 80 * <li>Generate authorization string for the given set of credentials, 81 * request method and URI as specificed in the HTTP request line 82 * </ul> 83 * </p> 84 * <p> 85 * Authentication schemes may ignore method name and URI parameters 86 * if they are not relevant for the given authentication mechanism 87 * </p> 88 * 89 * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a> 90 * @author <a href="mailto:adrian@ephox.com">Adrian Sutton</a> 91 * 92 * @since 2.0beta1 93 */ 94 95 public interface AuthScheme { 96 97 /*** 98 * Returns textual designation of the given authentication scheme. 99 * 100 * @return the name of the given authentication scheme 101 */ 102 String getSchemeName(); 103 104 /*** 105 * Returns authentication parameter with the given name, if available. 106 * 107 * @param name The name of the parameter to be returned 108 * 109 * @return the parameter with the given name 110 */ 111 String getParameter(final String name); 112 113 /*** 114 * Returns authentication realm. If the concept of an authentication 115 * realm is not applicable to the given authentication scheme, returns 116 * <code>null</code>. 117 * 118 * @return the authentication realm 119 */ 120 String getRealm(); 121 122 /*** 123 * Returns a String identifying the authentication challenge. This is 124 * used, in combination with the host and port to determine if 125 * authorization has already been attempted or not. Schemes which 126 * require multiple requests to complete the authentication should 127 * return a different value for each stage in the request. 128 * 129 * <p>Additionally, the ID should take into account any changes to the 130 * authentication challenge and return a different value when appropriate. 131 * For example when the realm changes in basic authentication it should be 132 * considered a different authentication attempt and a different value should 133 * be returned.</p> 134 * 135 * @return String a String identifying the authentication challenge. The 136 * returned value may be null. 137 */ 138 String getID(); 139 140 /*** 141 * Produces an authorization string for the given set of {@link Credentials}, 142 * method name and URI using the given authentication scheme. 143 * 144 * @param credentials The set of credentials to be used for athentication 145 * @param method The name of the method that requires authorization. 146 * This parameter may be ignored, if it is irrelevant 147 * or not applicable to the given authentication scheme 148 * @param uri The URI for which authorization is needed. 149 * This parameter may be ignored, if it is irrelevant or not 150 * applicable to the given authentication scheme 151 * @throws AuthenticationException if authorization string cannot 152 * be generated due to an authentication failure 153 * 154 * @return the authorization string 155 * 156 * @see org.apache.commons.httpclient.HttpMethod#getName() 157 * @see org.apache.commons.httpclient.HttpMethod#getPath() 158 */ 159 String authenticate(Credentials credentials, String method, String uri) 160 throws AuthenticationException; 161 162 }

This page was automatically generated by Maven