1. /*
  2. * $Header: /home/cvs/jakarta-commons/httpclient/src/java/org/apache/commons/httpclient/auth/CredentialsProvider.java,v 1.6 2004/07/05 22:46:59 olegk Exp $
  3. * $Revision: 1.6 $
  4. * $Date: 2004/07/05 22:46:59 $
  5. *
  6. * ====================================================================
  7. *
  8. * Copyright 2002-2004 The Apache Software Foundation
  9. *
  10. * Licensed under the Apache License, Version 2.0 (the "License");
  11. * you may not use this file except in compliance with the License.
  12. * You may obtain a copy of the License at
  13. *
  14. * http://www.apache.org/licenses/LICENSE-2.0
  15. *
  16. * Unless required by applicable law or agreed to in writing, software
  17. * distributed under the License is distributed on an "AS IS" BASIS,
  18. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  19. * See the License for the specific language governing permissions and
  20. * limitations under the License.
  21. * ====================================================================
  22. *
  23. * This software consists of voluntary contributions made by many
  24. * individuals on behalf of the Apache Software Foundation. For more
  25. * information on the Apache Software Foundation, please see
  26. * <http://www.apache.org/>.
  27. *
  28. */
  29. package org.apache.commons.httpclient.auth;
  30. import org.apache.commons.httpclient.Credentials;
  31. /**
  32. * <p>
  33. * Credentials provider interface can be used to provide {@link
  34. * org.apache.commons.httpclient.HttpMethod HTTP method} with a means
  35. * to request authentication credentials if no credentials have been given
  36. * or given credentials are incorrect.
  37. * </p>
  38. *
  39. * Classes implementing this interface must synchronize access to shared
  40. * data as methods of this interfrace may be executed from multiple threads
  41. *
  42. * @author Ortwin Glueck
  43. * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
  44. *
  45. * @since 3.0
  46. */
  47. public interface CredentialsProvider {
  48. /**
  49. * Sets the credentials provider parameter.
  50. * <p>
  51. * This parameter expects a value of type {@link CredentialsProvider}.
  52. * </p>
  53. */
  54. public static final String PROVIDER = "http.authentication.credential-provider";
  55. /**
  56. * Requests additional {@link Credentials authentication credentials}.
  57. *
  58. * @param scheme the {@link AuthScheme authentication scheme}
  59. * @param host the authentication host
  60. * @param port the port of the authentication host
  61. * @param proxy <tt>true</tt> if authenticating with a proxy,
  62. * <tt>false</tt> otherwise
  63. */
  64. public Credentials getCredentials(
  65. final AuthScheme scheme,
  66. final String host,
  67. int port,
  68. boolean proxy) throws CredentialsNotAvailableException;
  69. }