Author: davsclaus Date: Fri Apr 23 08:02:43 2010 New Revision: 937181 URL: http://svn.apache.org/viewvc?rev=937181&view=rev Log: Fixed http component to validate auth and auth proxy options is all provided.
Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpQueryGoogleProxyTest.java Modified: camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java?rev=937181&r1=937180&r2=937181&view=diff ============================================================================== --- camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java (original) +++ camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java Fri Apr 23 08:02:43 2010 @@ -127,14 +127,23 @@ public class HttpComponent extends Heade */ protected HttpClientConfigurer configureAuth(HttpClientConfigurer configurer, AuthMethod authMethod, String username, String password, String domain, String host, Set<AuthMethod> authMethods) { - if (authMethod == null) { + + // no auth is in use + if (username == null && authMethod == null) { return configurer; } - authMethods.add(authMethod); + // validate mandatory options given + if (username != null && authMethod == null) { + throw new IllegalArgumentException("Option authMethod must be provided to use authentication"); + } + ObjectHelper.notNull(authMethod, "authMethod"); ObjectHelper.notNull(username, "authUsername"); ObjectHelper.notNull(password, "authPassword"); + // add it as a auth method used + authMethods.add(authMethod); + if (authMethod == AuthMethod.Basic || authMethod == AuthMethod.Digest) { return CompositeHttpConfigurer.combineConfigurers(configurer, new BasicAuthenticationHttpClientConfigurer(false, username, password)); @@ -155,14 +164,22 @@ public class HttpComponent extends Heade */ protected HttpClientConfigurer configureProxyAuth(HttpClientConfigurer configurer, AuthMethod authMethod, String username, String password, String domain, String host, Set<AuthMethod> authMethods) { - if (authMethod == null) { + // no proxy auth is in use + if (username == null && authMethod == null) { return configurer; } - authMethods.add(authMethod); + // validate mandatory options given + if (username != null && authMethod == null) { + throw new IllegalArgumentException("Option proxyAuthMethod must be provided to use proxy authentication"); + } + ObjectHelper.notNull(authMethod, "proxyAuthMethod"); ObjectHelper.notNull(username, "proxyAuthUsername"); ObjectHelper.notNull(password, "proxyAuthPassword"); + // add it as a auth method used + authMethods.add(authMethod); + if (authMethod == AuthMethod.Basic || authMethod == AuthMethod.Digest) { return CompositeHttpConfigurer.combineConfigurers(configurer, new BasicAuthenticationHttpClientConfigurer(true, username, password)); Modified: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpQueryGoogleProxyTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpQueryGoogleProxyTest.java?rev=937181&r1=937180&r2=937181&view=diff ============================================================================== --- camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpQueryGoogleProxyTest.java (original) +++ camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpQueryGoogleProxyTest.java Fri Apr 23 08:02:43 2010 @@ -33,12 +33,12 @@ public class HttpQueryGoogleProxyTest ex @Ignore("Run manually") public void testQueryGoogleProxy() throws Exception { HttpConfiguration config = new HttpConfiguration(); - config.setProxyHost("aa"); - config.setProxyPort(80); + config.setProxyHost("myProxyHost"); + config.setProxyPort(8877); config.setProxyAuthMethod(AuthMethod.Basic); - config.setAuthMethodPriority("Basic,Digest"); - config.setProxyAuthUsername("aa"); - config.setProxyAuthPassword("aa"); + config.setAuthMethodPriority("Digest,Basic"); + config.setProxyAuthUsername("myProxyUsername"); + config.setProxyAuthPassword("myProxyPassword"); HttpComponent http = context.getComponent("http", HttpComponent.class); http.setHttpConfiguration(config);