directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Seelmann (JIRA)" <j...@apache.org>
Subject [jira] Created: (DIRSERVER-1551) LdifPartition file names on Unix and Windows
Date Tue, 14 Sep 2010 18:39:35 GMT
LdifPartition file names on Unix and Windows
--------------------------------------------

                 Key: DIRSERVER-1551
                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1551
             Project: Directory ApacheDS
          Issue Type: Bug
    Affects Versions: 2.0.0-RC1
            Reporter: Stefan Seelmann
             Fix For: 2.0.0-RC1


The LdifPartion stores entries to the file system and uses the entry's DN as file name or
folder name. The DN may include (almost) every unicode character, but different file systems
don't allow every character (http://en.wikipedia.org/wiki/Filenames). The current implementation
escapes some characters using a backslash, howerver that doesn't work, neither on Windows
nor an Unix (Linux or Mac OS X), see simple test below

In DIRSERVER-1541 Richard attached a patch that uses sort of URL encoding of forbidden characters
to fix the problems on Windows. I'd suggest to use the same method on Unix OSes.


Index: ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
===================================================================
--- ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
(Revision 996996)
+++ ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
(Arbeitskopie)
@@ -567,6 +567,23 @@
     }
 
 
+    @Test
+    public void testIllegalFilename() throws Exception
+    {
+        DN adminDn = new DN( "uid=admin,ou=system", schemaManager );
+        CoreSession session = new MockCoreSession( new LdapPrincipal( adminDn, AuthenticationLevel.STRONG
),
+            new MockDirectoryService( 1 ) );
+        AddOperationContext addCtx = new AddOperationContext( session );
+
+        ClonedServerEntry entry1 = createEntry( "dc=a/b/c,ou=test,ou=system" );
+        entry1.put( "ObjectClass", "top", "domain" );
+        entry1.put( "dc", "a/b/c" );
+        addCtx.setEntry( entry1 );
+
+        partition.add( addCtx );
+    }
+
+
     private CoreSession injectEntries() throws Exception
     {
         DN adminDn = new DN( "uid=admin,ou=system", schemaManager );


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message