View Javadoc

1   //
2   //  ========================================================================
3   //  Copyright (c) 1995-2013 Mort Bay Consulting Pty. Ltd.
4   //  ------------------------------------------------------------------------
5   //  All rights reserved. This program and the accompanying materials
6   //  are made available under the terms of the Eclipse Public License v1.0
7   //  and Apache License v2.0 which accompanies this distribution.
8   //
9   //      The Eclipse Public License is available at
10  //      http://www.eclipse.org/legal/epl-v10.html
11  //
12  //      The Apache License v2.0 is available at
13  //      http://www.opensource.org/licenses/apache2.0.php
14  //
15  //  You may elect to redistribute this code under either of these licenses.
16  //  ========================================================================
17  //
18  
19  package org.eclipse.jetty.client.security;
20  
21  
22  import java.io.IOException;
23  
24  import org.eclipse.jetty.client.HttpExchange;
25  import org.eclipse.jetty.http.HttpHeaders;
26  import org.eclipse.jetty.io.Buffer;
27  import org.eclipse.jetty.io.ByteArrayBuffer;
28  import org.eclipse.jetty.util.B64Code;
29  import org.eclipse.jetty.util.StringUtil;
30  
31  /**
32   * Sets proxy authentication headers for BASIC authentication challenges
33   * 
34   * 
35   */
36  public class ProxyAuthorization implements Authentication
37  {
38      private Buffer _authorization;
39      
40      public ProxyAuthorization(String username,String password) throws IOException
41      {
42          String authenticationString = "Basic " + B64Code.encode( username + ":" + password, StringUtil.__ISO_8859_1);
43          _authorization= new ByteArrayBuffer(authenticationString);
44      }
45      
46      /**
47       * BASIC proxy authentication is of the form
48       * 
49       * encoded credentials are of the form: username:password
50       * 
51       * 
52       */
53      public void setCredentials( HttpExchange exchange ) throws IOException
54      {
55          exchange.setRequestHeader( HttpHeaders.PROXY_AUTHORIZATION_BUFFER, _authorization);
56      }
57  }