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 )
             {   


Reply via email to