Author: joakime
Date: Tue Oct 23 17:00:30 2007
New Revision: 587701

URL: http://svn.apache.org/viewvc?rev=587701&view=rev
Log:
Adding some tests for invalid request paths.


Modified:
    
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
    
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java

Modified: 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java?rev=587701&r1=587700&r2=587701&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/content/RepositoryRequest.java
 Tue Oct 23 17:00:30 2007
@@ -99,13 +99,30 @@
     public ArtifactReference toArtifactReference( String requestedPath )
         throws LayoutException
     {
-        if ( isDefault( requestedPath ) )
+        if ( StringUtils.isBlank( requestedPath ) )
         {
-            return DefaultPathParser.toArtifactReference( requestedPath );
+            throw new LayoutException( "Blank request path is not a valid." );
         }
-        else if ( isLegacy( requestedPath ) )
+        
+        String path = requestedPath;
+        while ( path.startsWith( "/" ) )
         {
-            return LegacyPathParser.toArtifactReference( requestedPath );
+            path = path.substring( 1 );
+
+            // Only slash? that's bad, mmm-kay?
+            if ( "/".equals( path ) )
+            {
+                throw new LayoutException( "Invalid request path: Slash only." 
);
+            }
+        }
+
+        if ( isDefault( path ) )
+        {
+            return DefaultPathParser.toArtifactReference( path );
+        }
+        else if ( isLegacy( path ) )
+        {
+            return LegacyPathParser.toArtifactReference( path );
         }
         else
         {

Modified: 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
URL: 
http://svn.apache.org/viewvc/maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java?rev=587701&r1=587700&r2=587701&view=diff
==============================================================================
--- 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
 (original)
+++ 
maven/archiva/trunk/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/content/RepositoryRequestTest.java
 Tue Oct 23 17:00:30 2007
@@ -127,8 +127,10 @@
         throws Exception
     {
         assertValid( "org.apache.derby/poms/derby-10.2.2.0.pom", 
"org.apache.derby", "derby", "10.2.2.0", null, "pom" );
+        // Starting slash should not prevent detection.
+        assertValid( "/org.apache.derby/poms/derby-10.2.2.0.pom", 
"org.apache.derby", "derby", "10.2.2.0", null, "pom" );
     }
-
+    
     public void testValidDefaultDerbyPom()
         throws Exception
     {


Reply via email to