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