You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ol...@apache.org on 2012/10/10 17:08:17 UTC
svn commit: r1396632 - in
/maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker:
UpdatePatchMojo.java tracking/jenkins/JenkinsPatchTracker.java
Author: olamy
Date: Wed Oct 10 15:08:17 2012
New Revision: 1396632
URL: http://svn.apache.org/viewvc?rev=1396632&view=rev
Log:
add authz mechanism for jenkins
Modified:
maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/UpdatePatchMojo.java
maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/tracking/jenkins/JenkinsPatchTracker.java
Modified: maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/UpdatePatchMojo.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/UpdatePatchMojo.java?rev=1396632&r1=1396631&r2=1396632&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/UpdatePatchMojo.java (original)
+++ maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/UpdatePatchMojo.java Wed Oct 10 15:08:17 2012
@@ -61,7 +61,8 @@ public class UpdatePatchMojo
getLog().debug( patchTrackerRequest.toString() );
PatchTracker patchTracker = getPatchTracker();
PatchTrackerResult result = patchTracker.updatePatch( patchTrackerRequest, getLog() );
- getLog().info( "issue updated with id:" + result.getPatchId() + ", url:" + result.getPatchUrl() );
+
+ getLog().info( "Patch Posted updated with id:" + result.getPatchId() + ", url:" + result.getPatchUrl() );
}
catch ( ComponentLookupException e )
{
Modified: maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/tracking/jenkins/JenkinsPatchTracker.java
URL: http://svn.apache.org/viewvc/maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/tracking/jenkins/JenkinsPatchTracker.java?rev=1396632&r1=1396631&r2=1396632&view=diff
==============================================================================
--- maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/tracking/jenkins/JenkinsPatchTracker.java (original)
+++ maven/sandbox/trunk/plugins/maven-patch-tracker-plugin/src/main/java/org/apache/maven/plugins/patchtracker/tracking/jenkins/JenkinsPatchTracker.java Wed Oct 10 15:08:17 2012
@@ -19,12 +19,21 @@ package org.apache.maven.plugins.patchtr
*/
import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.AuthCache;
import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.protocol.ClientContext;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.FileBody;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.util.EntityUtils;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.plugins.patchtracker.tracking.PatchTracker;
@@ -42,11 +51,12 @@ import java.io.IOException;
public class JenkinsPatchTracker
implements PatchTracker
{
- DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
+
public PatchTrackerResult createPatch( PatchTrackerRequest patchTrackerRequest, Log log )
throws PatchTrackerException
{
+ DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
File tmpPathFile = null;
try
{
@@ -62,8 +72,35 @@ public class JenkinsPatchTracker
post.setEntity( entity );
- HttpResponse r = defaultHttpClient.execute( post );
+ BasicHttpContext context = null;
+
+ if ( StringUtils.isNotEmpty( patchTrackerRequest.getUserName() ) )
+ {
+ defaultHttpClient.getCredentialsProvider().setCredentials(
+ new AuthScope( new AuthScope( post.getURI().getHost(), post.getURI().getPort() ) ),
+ new UsernamePasswordCredentials( patchTrackerRequest.getUserName(),
+ patchTrackerRequest.getPassword() ) );
+
+ // Jenkins doesn't challenge so use a preemptive mode
+ AuthCache authCache = new BasicAuthCache();
+ BasicScheme basicAuth = new BasicScheme();
+ HttpHost targetHost =
+ new HttpHost( post.getURI().getHost(), post.getURI().getPort(), post.getURI().getScheme() );
+ authCache.put( targetHost, basicAuth );
+
+ context = new BasicHttpContext();
+ context.setAttribute( ClientContext.AUTH_CACHE, authCache );
+ }
+ HttpResponse r;
+ if ( context == null )
+ {
+ r = defaultHttpClient.execute( post );
+ }
+ else
+ {
+ r = defaultHttpClient.execute( post, context );
+ }
log.debug(
"r:" + r.getStatusLine().getStatusCode() + ", status: " + r.getStatusLine().getReasonPhrase() + ","
+ EntityUtils.toString( r.getEntity() ) );
@@ -94,4 +131,5 @@ public class JenkinsPatchTracker
{
throw new RuntimeException( "updatePatch is not implemented with Jenkins" );
}
+
}