You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wagon-commits@maven.apache.org by ca...@apache.org on 2006/05/24 07:50:27 UTC
svn commit: r409075 - in /maven/wagon/trunk/wagon-providers/wagon-webdav/src:
main/java/org/apache/maven/wagon/providers/webdav/
test/java/org/apache/maven/wagon/providers/webdav/
test/resources/org/apache/maven/wagon/providers/webdav/
Author: carlos
Date: Tue May 23 22:50:26 2006
New Revision: 409075
URL: http://svn.apache.org/viewvc?rev=409075&view=rev
Log:
[WAGON-48] Authentication code was never called
Added:
maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java (with props)
maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml (with props)
Modified:
maven/wagon/trunk/wagon-providers/wagon-webdav/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/Context.java
maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/ServletServer.java
Modified: maven/wagon/trunk/wagon-providers/wagon-webdav/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java?rev=409075&r1=409074&r2=409075&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav/src/main/java/org/apache/maven/wagon/providers/webdav/WebDavWagon.java Tue May 23 22:50:26 2006
@@ -112,34 +112,23 @@
try
{
httpURL = urlToHttpURL( url );
+
+ if ( authenticationInfo != null )
+ {
+ String userName = authenticationInfo.getUserName();
+ String password = authenticationInfo.getPassword();
+
+ if ( userName != null && password != null )
+ httpURL.setUserinfo( userName, password );
+ }
CorrectedWebdavResource.setDefaultAction( CorrectedWebdavResource.NOACTION );
wdresource = new CorrectedWebdavResource( httpURL );
}
catch ( HttpException he )
{
- if ( he.getReasonCode() == HttpStatus.SC_UNAUTHORIZED )
- {
- try
- {
- httpURL.setUserinfo( authenticationInfo.getUserName(), authenticationInfo.getPassword() );
-
- wdresource = new CorrectedWebdavResource( httpURL );
- }
- catch ( URIException urie )
- {
- throw new AuthenticationException( "Authentication Exception: " + urie.getReason() );
- }
- catch ( IOException ioe )
- {
- throw new ConnectionException( "Connection Exception: " + ioe.getMessage() );
- }
- }
- else
- {
- throw new ConnectionException( "Connection Exception: " + url + " " + he.getReasonCode() + " "
- + HttpStatus.getStatusText( he.getReasonCode() ) );
- }
+ throw new ConnectionException( "Connection Exception: " + url + " " + he.getReasonCode() + " "
+ + HttpStatus.getStatusText( he.getReasonCode() ) );
}
catch ( URIException urie )
{
@@ -438,7 +427,7 @@
throw new ResourceDoesNotExistException( "File: " + url + " does not exist" );
default:
- throw new TransferFailedException( "Failed to trasfer file: " + url + ". Return code is: "
+ throw new TransferFailedException( "Failed to transfer file: " + url + ". Return code is: "
+ statusCode );
}
}
@@ -471,7 +460,7 @@
throw new ResourceDoesNotExistException( "File: " + url + " does not exist" );
default:
- throw new TransferFailedException( "Failed to trasfer file: " + url + ". Return code is: "
+ throw new TransferFailedException( "Failed to transfer file: " + url + ". Return code is: "
+ statusCode );
}
Added: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java?rev=409075&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java (added)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java Tue May 23 22:50:26 2006
@@ -0,0 +1,76 @@
+package org.apache.maven.wagon.providers.webdav;
+
+/*
+ * Copyright 2001-2006 The Apache Software Foundation.
+ *
+ * Licensed 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 java.io.File;
+import java.io.IOException;
+
+import org.apache.maven.wagon.FileTestUtils;
+import org.apache.maven.wagon.WagonTestCase;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+
+/**
+ * Authenticated WebDAV Wagon Test
+ *
+ * @author <a href="mailto:markhobson@gmail.com">Mark Hobson</a>
+ */
+public class AuthenticatedWebDavWagonTest
+ extends WagonTestCase
+{
+ private ServletServer server;
+
+ protected String getTestRepositoryUrl()
+ throws IOException
+ {
+ return "dav:http://localhost:10007/authdav/newfolder/folder2";
+ }
+
+ protected String getProtocol()
+ {
+ return "dav";
+ }
+
+ protected AuthenticationInfo getAuthInfo()
+ {
+ AuthenticationInfo authenticationInfo = new AuthenticationInfo();
+
+ authenticationInfo.setUserName( "userName" );
+
+ authenticationInfo.setPassword( "password" );
+
+ return authenticationInfo;
+ }
+
+ protected void setupWagonTestingFixtures()
+ throws Exception
+ {
+ File file = FileTestUtils.createUniqueFile( "authdav-repository", "test-resource" );
+
+ file.delete();
+
+ File davDir = file.getParentFile();
+ davDir.mkdirs();
+
+ server = (ServletServer) lookup( ServletServer.ROLE );
+ }
+
+ protected void tearDownWagonTestingFixtures()
+ throws Exception
+ {
+ release( server );
+ }
+}
Propchange: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/Context.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/Context.java?rev=409075&r1=409074&r2=409075&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/Context.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/Context.java Tue May 23 22:50:26 2006
@@ -18,6 +18,8 @@
import java.util.List;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
+
/**
* Context
*
@@ -26,7 +28,9 @@
public class Context
{
private String id;
-
+
+ private AuthenticationInfo authenticationInfo;
+
private List servlets;
public String getId()
@@ -34,10 +38,13 @@
return id;
}
+ public AuthenticationInfo getAuthenticationInfo()
+ {
+ return authenticationInfo;
+ }
+
public List getServlets()
{
return servlets;
}
-
-
}
Modified: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/ServletServer.java
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/ServletServer.java?rev=409075&r1=409074&r2=409075&view=diff
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/ServletServer.java (original)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/java/org/apache/maven/wagon/providers/webdav/ServletServer.java Tue May 23 22:50:26 2006
@@ -21,12 +21,17 @@
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.maven.wagon.authentication.AuthenticationInfo;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Startable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.StartingException;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException;
+import org.mortbay.http.BasicAuthenticator;
+import org.mortbay.http.HashUserRealm;
+import org.mortbay.http.SecurityConstraint;
import org.mortbay.http.SocketListener;
+import org.mortbay.http.handler.SecurityHandler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.jetty.servlet.ServletHttpContext;
@@ -83,6 +88,18 @@
private void initContext( Context wdc, ServletHttpContext context )
throws ClassNotFoundException, InstantiationException, IllegalAccessException
{
+ AuthenticationInfo authenticationInfo = wdc.getAuthenticationInfo();
+ if ( authenticationInfo != null )
+ {
+ HashUserRealm userRealm = new HashUserRealm( "basic" );
+ userRealm.put( authenticationInfo.getUserName(), authenticationInfo.getPassword() );
+ context.getHttpServer().addRealm( userRealm );
+
+ context.setAuthenticator( new BasicAuthenticator() );
+ context.addSecurityConstraint( "/*", new SecurityConstraint( "any", SecurityConstraint.ANY_ROLE ) );
+ context.addHandler( new SecurityHandler() );
+ }
+
Iterator itpaths = wdc.getServlets().iterator();
while ( itpaths.hasNext() )
{
Added: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml
URL: http://svn.apache.org/viewvc/maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml?rev=409075&view=auto
==============================================================================
--- maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml (added)
+++ maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml Tue May 23 22:50:26 2006
@@ -0,0 +1,37 @@
+<plexus>
+ <components>
+ <component>
+ <role>org.apache.maven.wagon.providers.webdav.ServletServer</role>
+ <implementation>org.apache.maven.wagon.providers.webdav.ServletServer</implementation>
+ <configuration>
+ <port>10007</port>
+ <contexts>
+ <context>
+ <id>/authdav</id>
+ <authenticationInfo>
+ <userName>userName</userName>
+ <password>password</password>
+ </authenticationInfo>
+ <servlets>
+ <servlet>
+ <id>LOCALREPO</id>
+ <path>/*</path>
+ <servlet>it.could.webdav.DAVServlet</servlet>
+ <parameters>
+ <property>
+ <name>rootPath</name>
+ <value>${basedir}/target/test-output/authdav-repository</value>
+ </property>
+ <property>
+ <name>xmlOnly</name>
+ <value>false</value>
+ </property>
+ </parameters>
+ </servlet>
+ </servlets>
+ </context>
+ </contexts>
+ </configuration>
+ </component>
+ </components>
+</plexus>
Propchange: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/wagon/trunk/wagon-providers/wagon-webdav/src/test/resources/org/apache/maven/wagon/providers/webdav/AuthenticatedWebDavWagonTest.xml
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
---------------------------------------------------------------------
To unsubscribe, e-mail: wagon-commits-unsubscribe@maven.apache.org
For additional commands, e-mail: wagon-commits-help@maven.apache.org