You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/07/21 13:59:44 UTC
svn commit: r558320 - in
/jakarta/httpcomponents/httpclient/trunk/module-client/src:
examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java
main/java/org/apache/http/impl/client/AbstractHttpClient.java
Author: olegk
Date: Sat Jul 21 04:59:43 2007
New Revision: 558320
URL: http://svn.apache.org/viewvc?view=rev&rev=558320
Log:
Added interactive authentication sample
Added:
jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java (with props)
Modified:
jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
Added: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java?view=auto&rev=558320
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java (added)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java Sat Jul 21 04:59:43 2007
@@ -0,0 +1,117 @@
+/*
+ * $HeadURL$
+ * $Revision$
+ * $Date$
+ * ====================================================================
+ *
+ * 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/>.
+ *
+ * [Additional notices, if required by prior licensing conditions]
+ *
+ */
+
+package org.apache.http.examples.client;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.HttpStatus;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthState;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.protocol.ClientContext;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.protocol.BasicHttpContext;
+import org.apache.http.protocol.HttpContext;
+
+/**
+ * A simple example that uses HttpClient to execute an HTTP request against
+ * a target site that requires user authentication.
+ */
+public class ClientInteractiveAuthentication {
+
+ public static void main(String[] args) throws Exception {
+ DefaultHttpClient httpclient = new DefaultHttpClient();
+
+ // Create custom execution context
+ // We'll need it in order to get hold of the authentication state object
+ HttpContext localContext = new BasicHttpContext(httpclient.getDefaultContext());
+
+ HttpGet httpget = new HttpGet("http://localhost/test");
+
+ boolean trying = true;
+ while (trying) {
+ System.out.println("executing request " + httpget.getRequestLine());
+ HttpResponse response = httpclient.execute(httpget, localContext);
+
+ System.out.println("----------------------------------------");
+ System.out.println(response.getStatusLine());
+
+ // Consume response content
+ HttpEntity entity = response.getEntity();
+ if (entity != null) {
+ entity.consumeContent();
+ }
+
+ int sc = response.getStatusLine().getStatusCode();
+
+ AuthState authState = null;
+ if (sc == HttpStatus.SC_UNAUTHORIZED) {
+ // Target host authentication required
+ authState = (AuthState) localContext.getAttribute(ClientContext.TARGET_AUTH_STATE);
+ } if (sc == HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED) {
+ // Proxy authentication required
+ authState = (AuthState) localContext.getAttribute(ClientContext.PROXY_AUTH_STATE);
+ }
+
+ if (authState != null) {
+ System.out.println("----------------------------------------");
+ AuthScope authScope = authState.getAuthScope();
+ System.out.println("Please provide credentials");
+ System.out.println(" Host: " + authScope.getHost() + ":" + authScope.getPort());
+ System.out.println(" Realm: " + authScope.getRealm());
+
+
+ BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
+
+ System.out.print("Enter username: ");
+ String user = console.readLine();
+ System.out.print("Enter password: ");
+ String password = console.readLine();
+
+ if (user != null && user.length() > 0) {
+ Credentials creds = new UsernamePasswordCredentials(user, password);
+ httpclient.getCredentialsProvider().setCredentials(authScope, creds);
+ trying = true;
+ } else {
+ trying = false;
+ }
+ } else {
+ trying = false;
+ }
+ }
+ }
+}
Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: jakarta/httpcomponents/httpclient/trunk/module-client/src/examples/org/apache/http/examples/client/ClientInteractiveAuthentication.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java?view=diff&rev=558320&r1=558319&r2=558320
==============================================================================
--- jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java (original)
+++ jakarta/httpcomponents/httpclient/trunk/module-client/src/main/java/org/apache/http/impl/client/AbstractHttpClient.java Sat Jul 21 04:59:43 2007
@@ -299,7 +299,7 @@
}
- public synchronized void setState(final CredentialsProvider credsProvider) {
+ public synchronized void setCredentialsProvider(final CredentialsProvider credsProvider) {
this.credsProvider = credsProvider;
}