[ https://issues.apache.org/jira/browse/WICKET-5851?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14358264#comment-14358264 ]
ASF GitHub Bot commented on WICKET-5851: ---------------------------------------- Github user shuraa commented on a diff in the pull request: https://github.com/apache/wicket/pull/107#discussion_r26284201 --- Diff: wicket-core/src/main/java/org/apache/wicket/markup/html/PackageResourceGuard.java --- @@ -85,7 +85,8 @@ protected boolean acceptAbsolutePath(String path) int len = path.length(); final String ext; if (ixExtension <= 0 || ixExtension == len || - (path.lastIndexOf(File.separator) + 1) == ixExtension) --- End diff -- Check PackageResourceGuardTest: assertTrue(guard.acceptAbsolutePath("c:\\test\\org\\apache\\.java")); assertTrue(guard.acceptAbsolutePath("c:/test/org/apache/.java")); Under Win one can use both separator styles. > PackageResourceTest#packageResourceGuard test fails under Windows > ----------------------------------------------------------------- > > Key: WICKET-5851 > URL: https://issues.apache.org/jira/browse/WICKET-5851 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 6.19.0 > Environment: Windows 8.1 Pro, Oracle JDK 7u72 x64 > Reporter: Alexander Morozov > > I'm emphasized assert statement which causes the issue > {code:java} > @Test > public void packageResourceGuard() throws Exception > { > PackageResourceGuard guard = new PackageResourceGuard(); > assertTrue(guard.acceptExtension("txt")); > assertFalse(guard.acceptExtension("java")); > assertTrue(guard.acceptAbsolutePath("foo/Bar.txt")); > assertFalse(guard.acceptAbsolutePath("foo/Bar.java")); > assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > "Bar.txt"))); > assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > "Bar.txt."))); > assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > ".Bar.txt"))); > assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > ".Bar.txt."))); > assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > ".Bar"))); > >>>> assertTrue(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > ".java"))); > assertFalse(guard.accept(PackageResourceTest.class, > Packages.absolutePath(PackageResourceTest.class, > "Bar.java"))); > } > {code} > There is another issue in PackageResourceGuardTest > {code:java} > @Test > public void acceptAbsolutePath() > { > PackageResourceGuard guard = new PackageResourceGuard(); > guard.setAllowAccessToRootResources(false); > assertTrue(guard.acceptAbsolutePath("/test/test.js")); > assertFalse(guard.acceptAbsolutePath("/test.js")); > >>> File.pathSeparator must be replaced with File.separator > >>> if ("\\".equals(File.pathSeparator)) > { > > assertTrue(guard.acceptAbsolutePath("c:\\test\\org\\apache\\test.js")); > > assertTrue(guard.acceptAbsolutePath("\\test\\org\\apache\\test.js")); > assertFalse(guard.acceptAbsolutePath("c:\\test.js")); > assertFalse(guard.acceptAbsolutePath("\\test.js")); > // java also generates file paths with '/' on windows > > assertTrue(guard.acceptAbsolutePath("c:/test/org/apache/test.js")); > > assertTrue(guard.acceptAbsolutePath("/test/org/apache/test.js")); > assertFalse(guard.acceptAbsolutePath("c:/test.js")); > assertFalse(guard.acceptAbsolutePath("/test.js")); > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)