hc-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ol...@apache.org
Subject 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
Date Sat, 21 Jul 2007 11:59:44 GMT
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;
     }
 



Mime
View raw message