Author: olamy Date: Tue Mar 20 23:42:31 2012 New Revision: 1303214 URL: http://svn.apache.org/viewvc?rev=1303214&view=rev Log: make preemptive on get configurable
Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java (with props) maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java (with props) Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java Modified: maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java?rev=1303214&r1=1303213&r2=1303214&view=diff ============================================================================== --- maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java (original) +++ maven/wagon/trunk/wagon-providers/wagon-http-shared4/src/main/java/org/apache/maven/wagon/shared/http4/AbstractHttpClientWagon.java Tue Mar 20 23:42:31 2012 @@ -740,6 +740,27 @@ public abstract class AbstractHttpClient if ( config != null ) { HttpParams params = config.asMethodParams( method.getParams() ); + + if ( config.isUsePreemptive() && authenticationInfo != null ) + { + String username = authenticationInfo.getUserName(); + String password = authenticationInfo.getPassword(); + + if ( StringUtils.isNotEmpty( username ) && StringUtils.isNotEmpty( password ) ) + { + + AuthCache authCache = new BasicAuthCache(); + BasicScheme basicAuth = new BasicScheme(); + HttpHost targetHost = + new HttpHost( repository.getHost(), repository.getPort(), repository.getProtocol() ); + authCache.put( targetHost, basicAuth ); + + localContext = new BasicHttpContext(); + localContext.setAttribute( ClientContext.AUTH_CACHE, authCache ); + } + + } + if ( params != null ) { method.setParams( params ); Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java?rev=1303214&view=auto ============================================================================== --- maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java (added) +++ maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java Tue Mar 20 23:42:31 2012 @@ -0,0 +1,60 @@ +package org.apache.maven.wagon.providers.http; + +/* + * 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. + */ + +import org.apache.maven.wagon.Wagon; +import org.apache.maven.wagon.shared.http4.HttpConfiguration; +import org.apache.maven.wagon.shared.http4.HttpMethodConfiguration; + +/** + * @author <a href="michal.mac...@dimatics.com">Michal Maczka</a> + * @version $Id$ + */ +public class HttpWagonPreemptiveTest + extends HttpWagonTest +{ + @Override + protected Wagon getWagon() + throws Exception + { + HttpWagon wagon = (HttpWagon) super.getWagon(); + wagon.setHttpConfiguration( + new HttpConfiguration().setAll( new HttpMethodConfiguration().setUsePreemptive( true ) ) ); + return wagon; + } + + @Override + protected boolean supportPreemptiveAuthenticationPut() + { + return true; + } + + @Override + protected boolean supportPreemptiveAuthenticationGet() + { + return true; + } + + @Override + protected boolean supportProxyPreemptiveAuthentication() + { + return true; + } +} Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpWagonPreemptiveTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java?rev=1303214&view=auto ============================================================================== --- maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java (added) +++ maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java Tue Mar 20 23:42:31 2012 @@ -0,0 +1,79 @@ +package org.apache.maven.wagon.providers.http; + +/* + * 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. + */ + +import org.apache.maven.wagon.Wagon; +import org.apache.maven.wagon.shared.http4.HttpConfiguration; +import org.apache.maven.wagon.shared.http4.HttpMethodConfiguration; +import org.mortbay.jetty.Connector; +import org.mortbay.jetty.Server; +import org.mortbay.jetty.security.SslSocketConnector; + +public class HttpsWagonPreemptiveTest + extends HttpWagonTest +{ + protected String getProtocol() + { + return "https"; + } + + protected void addConnectors( Server server ) + { + System.setProperty( "javax.net.ssl.trustStore", + getTestFile( "src/test/resources/ssl/keystore" ).getAbsolutePath() ); + + SslSocketConnector connector = new SslSocketConnector(); + connector.setPort( server.getConnectors()[0].getPort() ); + connector.setKeystore( getTestPath( "src/test/resources/ssl/keystore" ) ); + connector.setPassword( "wagonhttp" ); + connector.setKeyPassword( "wagonhttp" ); + connector.setTruststore( getTestPath( "src/test/resources/ssl/keystore" ) ); + connector.setTrustPassword( "wagonhttp" ); + server.setConnectors( new Connector[]{ connector } ); + } + + @Override + protected Wagon getWagon() + throws Exception + { + HttpWagon wagon = (HttpWagon) super.getWagon(); + wagon.setHttpConfiguration( + new HttpConfiguration().setAll( new HttpMethodConfiguration().setUsePreemptive( true ) ) ); + return wagon; + } + + @Override + protected boolean supportPreemptiveAuthenticationPut() + { + return true; + } + + @Override + protected boolean supportPreemptiveAuthenticationGet() + { + return true; + } + + @Override + protected boolean supportProxyPreemptiveAuthentication() + { + return true; + } +} Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/wagon/trunk/wagon-providers/wagon-http/src/test/java/org/apache/maven/wagon/providers/http/HttpsWagonPreemptiveTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision