You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by oc...@apache.org on 2008/05/21 03:39:40 UTC

svn commit: r658525 - in /archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav: ArchivaDavResourceFactory.java util/IndexWriter.java

Author: oching
Date: Tue May 20 18:39:40 2008
New Revision: 658525

URL: http://svn.apache.org/viewvc?rev=658525&view=rev
Log:
[MRM-694]
-put authorization check for virtual repos

Modified:
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
    archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java?rev=658525&r1=658524&r2=658525&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/ArchivaDavResourceFactory.java Tue May 20 18:39:40 2008
@@ -147,7 +147,7 @@
             // handle browse requests for virtual repos
             if ( RepositoryPathUtil.getLogicalResource( locator.getResourcePath() ).endsWith( "/" ) )                
             {                    
-                return getResource( repositories, archivaLocator );                
+                return getResource( request, repositories, archivaLocator );                
             }            
         }
         else
@@ -664,7 +664,7 @@
         }
     }
     
-    private DavResource getResource( List<String> repositories, ArchivaDavResourceLocator locator )
+    private DavResource getResource( DavServletRequest request, List<String> repositories, ArchivaDavResourceLocator locator )
         throws DavException
     {
         List<File> mergedRepositoryContents = new ArrayList<File>();        
@@ -685,15 +685,18 @@
                     repository + ">" );
             }
             
-            if ( !locator.getResourcePath().startsWith( ArchivaVirtualDavResource.HIDDEN_PATH_PREFIX ) )
+            if( isAuthorized( request, repository ) )
             {
-                if( managedRepository != null )
-                {   
-                    File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() );
-                    if( resourceFile.exists() )
-                    {
-                        mergedRepositoryContents.add( resourceFile );
-                    }                    
+                if ( !locator.getResourcePath().startsWith( ArchivaVirtualDavResource.HIDDEN_PATH_PREFIX ) )
+                {
+                    if( managedRepository != null )
+                    {   
+                        File resourceFile = new File( managedRepository.getRepoRoot(), logicalResource.getPath() );
+                        if( resourceFile.exists() )
+                        {
+                            mergedRepositoryContents.add( resourceFile );
+                        }                    
+                    }
                 }
             }
         }      

Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java?rev=658525&r1=658524&r2=658525&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webdav/src/main/java/org/apache/maven/archiva/webdav/util/IndexWriter.java Tue May 20 18:39:40 2008
@@ -129,8 +129,7 @@
             for( File resource : localResources )
             {
                 List<File> files = new ArrayList<File>( Arrays.asList( resource.listFiles() ) ); 
-                Collections.sort( files );
-                                
+                                                
                 for ( File file : files )
                 {   
                     if( uniqueChildFiles.get( file.getName() ) == null )
@@ -142,6 +141,7 @@
             
             List<File> uniqueChildFilesInList = new ArrayList<File>();
             uniqueChildFilesInList.addAll( uniqueChildFiles.values() );
+            Collections.sort( uniqueChildFilesInList );
             
             for ( File file : uniqueChildFilesInList )
             {