Cisco Cisco Prime Home 6.3 Developer's Guide

Page of 78
Cisco Prime Home – Integration Guide
 
 
OL-28558-01   v5.1
 
77 
com.clearaccess.rest.HttpClientFactory 
/* 
* Copyright (c) 2010 ClearAccess, Inc. 
* This code is provided AS-IS for illustration purposes. 
*/ 
 
package com.clearaccess.rest; 
 
import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.UsernamePasswordCredentials; 
import org.apache.commons.httpclient.auth.AuthScope; 
import 
org.springframework.http.client.CommonsClientHttpRequestFactory; 
import org.springframework.stereotype.Component; 
import org.springframework.beans.factory.annotation.Autowired; 
import com.clearaccess.Configuration; 
 
import java.net.URL; 
import java.net.MalformedURLException; 
 
@Component 
public class HttpClientFactory extends 
CommonsClientHttpRequestFactory { 
private Configuration configuration; 
@Autowired 
public HttpClientFactory(Configuration configuration) { 
this.configuration = configuration; 

 
/** 
* intercepts the super.getHttpClient and modifies its state to 
include 
* authentication credentials 
* @return the http client 
*/ 
@Override 
public HttpClient getHttpClient() { 
try { 
final HttpClient client = super.getHttpClient(); 
final UsernamePasswordCredentials credentials = 
new UsernamePasswordCredentials(configuration.getUser(), 
configuration.getPassword()); 
final URL url = new URL(configuration.getUrl()); 
final AuthScope authScope = new AuthScope(url.getHost(), 
url.getPort(), AuthScope.ANY_REALM); 
client.getState().setCredentials(authScope, credentials); 
return client; 
} catch (MalformedURLException e) { 
throw new RuntimeException(e);