On May 13, 2010, at 10:45 PM, sdumitriu (SVN) wrote:
  Author: sdumitriu
 Date: 2010-05-13 22:45:42 +0200 (Thu, 13 May 2010)
 New Revision: 28861
 Modified:
   platform/core/branches/xwiki-core-2.2/xwiki-core/src/main/java/com/xpn/xwiki/XWiki.java
platform/core/branches/xwiki-core-2.2/xwiki-core/src/main/java/com/xpn/xwiki/web/SkinAction.java
platform/core/branches/xwiki-core-2.2/xwiki-core/src/test/java/com/xpn/xwiki/web/SkinActionTest.java
 Log:
 XWIKI-2580: Improve file access sandboxing
 Fixed.
 Patch from Alex Busenius applied with minor changes.
 Merged from trunk@r28858 
[snip]
 Modified:
platform/core/branches/xwiki-core-2.2/xwiki-core/src/test/java/com/xpn/xwiki/web/SkinActionTest.java
 ===================================================================
 ---
platform/core/branches/xwiki-core-2.2/xwiki-core/src/test/java/com/xpn/xwiki/web/SkinActionTest.java
2010-05-13 20:45:29 UTC (rev 28860)
 +++
platform/core/branches/xwiki-core-2.2/xwiki-core/src/test/java/com/xpn/xwiki/web/SkinActionTest.java
2010-05-13 20:45:42 UTC (rev 28861)
 @@ -20,6 +20,8 @@
  */
 package com.xpn.xwiki.web;
 +import java.io.IOException;
 +
 import org.jmock.cglib.MockObjectTestCase;
 /**
 @@ -66,4 +68,54 @@
     {
         assertFalse(this.action.isJavascriptMimeType(null));
     }
 +
 +    public void testIncorrectSkinFile()
 +    {
 +        try {
 +            this.action.getSkinFilePath("../../resources/js/xwiki/xwiki.js",
"colibri");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +        try {
 +            this.action.getSkinFilePath("../../../", "colibri");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +        try {
 +            this.action.getSkinFilePath("resources/js/xwiki/xwiki.js",
"..");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +        try {
 +            this.action.getSkinFilePath("../resources/js/xwiki/xwiki.js",
".");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +    }
 + 
This should be 4 separate tests.
-Vincent
  +    public void testIncorrectResourceFile()
 +    {
 +        try {
 +            this.action.getResourceFilePath("../../skins/js/xwiki/xwiki.js");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +        try {
 +            this.action.getResourceFilePath("../../../");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +        try {
 +            this.action.getResourceFilePath("../../redirect");
 +            assertTrue("should fail", false);
 +        } catch (IOException e) {
 +            // good
 +        }
 +    }
 }
 _______________________________________________
 notifications mailing list
 notifications(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/notifications