vhardy 02/04/30 02:24:53
Modified: samples/tests/spec/scripting security.svg security2.svg
security2.jar
samples/tests/resources/script rhinoSecurity.js
samples/tests/resources/java/sources/com/untrusted/script
UntrustedScriptHandler.java
Log:
Improved security tests
Revision Changes Path
1.2 +15 -3 xml-batik/samples/tests/spec/scripting/security.svg
Index: security.svg
===================================================================
RCS file: /home/cvs/xml-batik/samples/tests/spec/scripting/security.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- security.svg 30 Apr 2002 08:45:16 -0000 1.1
+++ security.svg 30 Apr 2002 09:24:52 -0000 1.2
@@ -25,7 +25,7 @@
<!-- - access to SSL is denied. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: security.svg,v 1.1 2002/04/30 08:45:16 vhardy Exp $ -->
+<!-- @version $Id: security.svg,v 1.2 2002/04/30 09:24:52 vhardy Exp $ -->
<!-- ========================================================================= -->
<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
@@ -93,7 +93,7 @@
<!-- ============================================================= -->
<g id="testContent">
<text x="225" y="30" class="title">
- Security Check
+ ECMA Script Security Check
</text>
<defs>
@@ -159,13 +159,25 @@
<!-- =========================================== -->
<!-- Button for starting the security check -->
<!-- =========================================== -->
- <g transform="translate(225, 470)" onmouseover="setAttribute('runTest',
'fill', 'gold')"
+ <g transform="translate(90, 470)" onmouseover="setAttribute('runTest',
'fill', 'gold')"
onmouseout="setAttribute('runTest', 'fill', 'lightgray')"
onclick="runEcmascriptSecurityTest()">
<rect id="runTest" x="-40" y="-10" width="80" height="20"
stroke="black" fill="lightgray" />
<text x="0" y="5" text-anchor="middle">Run Test</text>
+ </g>
+
+ <!-- =========================================== -->
+ <!-- Used to display the overall status -->
+ <!-- =========================================== -->
+ <g id="globalStatusGroup">
+ <rect x="380" y="460" width="20" height="20"
+ class="tableCell" />
+ <rect id="globalStatus"
+ x="383" y="463" width="14" height="14"
+ class="untested" />
+ <text id="successRatio" x="375" y="475" text-anchor="end">not
run</text>
</g>
</g>
1.2 +16 -3 xml-batik/samples/tests/spec/scripting/security2.svg
Index: security2.svg
===================================================================
RCS file: /home/cvs/xml-batik/samples/tests/spec/scripting/security2.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- security2.svg 30 Apr 2002 08:45:16 -0000 1.1
+++ security2.svg 30 Apr 2002 09:24:52 -0000 1.2
@@ -28,7 +28,7 @@
<!-- This test is designed for Java Language scripting. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: security2.svg,v 1.1 2002/04/30 08:45:16 vhardy Exp $ -->
+<!-- @version $Id: security2.svg,v 1.2 2002/04/30 09:24:52 vhardy Exp $ -->
<!-- ========================================================================= -->
<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
@@ -100,7 +100,7 @@
<!-- ============================================================= -->
<g id="testContent">
<text x="225" y="30" class="title">
- Security Check
+ Java Jar-file Security Check
</text>
<defs>
@@ -166,13 +166,26 @@
<!-- =========================================== -->
<!-- Button for starting the security check -->
<!-- =========================================== -->
- <g transform="translate(225, 470)" onmouseover="setAttribute('runTest',
'fill', 'gold')"
+ <g transform="translate(90, 470)" onmouseover="setAttribute('runTest',
'fill', 'gold')"
onmouseout="setAttribute('runTest', 'fill', 'lightgray')">
<rect id="runTest" x="-40" y="-10" width="80" height="20"
stroke="black" fill="lightgray" />
<text x="0" y="5" text-anchor="middle">Run Test</text>
</g>
+
+ <!-- =========================================== -->
+ <!-- Used to display the overall status -->
+ <!-- =========================================== -->
+ <g id="globalStatusGroup">
+ <rect x="380" y="460" width="20" height="20"
+ class="tableCell" />
+ <rect id="globalStatus"
+ x="383" y="463" width="14" height="14"
+ class="untested" />
+ <text id="successRatio" x="375" y="475" text-anchor="end">not run</text>
+ </g>
+
</g>
1.2 +24 -27 xml-batik/samples/tests/spec/scripting/security2.jar
<<Binary file>>
1.2 +38 -1 xml-batik/samples/tests/resources/script/rhinoSecurity.js
Index: rhinoSecurity.js
===================================================================
RCS file: /home/cvs/xml-batik/samples/tests/resources/script/rhinoSecurity.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- rhinoSecurity.js 30 Apr 2002 08:45:16 -0000 1.1
+++ rhinoSecurity.js 30 Apr 2002 09:24:53 -0000 1.2
@@ -1,3 +1,24 @@
+/*****************************************************************************
+ * Copyright (C) The Apache Software Foundation. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
+ *****************************************************************************/
+
+/**
+ * This ECMA Script file represents an example of untrusted code.
+ *
+ * It creates a number of Java Permissions and checks that access is denied.
+ * the tests fail if the Permissions are granted.
+ *
+ * The only thing that the class should be allowed to make is a connection
+ * back to the server that served the document containing this script.
+ *
+ * @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
+ * @version $Id: rhinoSecurity.js,v 1.2 2002/04/30 09:24:53 vhardy Exp $
+ */
+
importPackage(Packages.java.awt);
importPackage(Packages.java.io);
importPackage(Packages.java.lang.reflect);
@@ -151,10 +172,11 @@
function runEcmascriptSecurityTest(){
var sm = System.getSecurityManager();
-
+ var successCnt = 0;
if (sm == null){
for (var i=0; i<nGranted; i++) {
statusRects[i].setAttributeNS(null, "class", "passedTest");
+ successCnt++;
}
for (var i=nGranted; i<permissions.length; i++) {
statusRects[i].setAttributeNS(null, "class", "failedTest");
@@ -167,6 +189,7 @@
try {
sm.checkPermission(p);
statusRects[i].setAttributeNS(null, "class", "passedTest");
+ successCnt++;
} catch (se){
statusRects[i].setAttributeNS(null, "class", "failedTest");
se.printStackTrace();
@@ -180,7 +203,21 @@
statusRects[i].setAttributeNS(null, "class", "failedTest");
} catch (se){
statusRects[i].setAttributeNS(null, "class", "passedTest");
+ successCnt++;
}
}
}
+
+ // Update the global status
+ var globalStatus = document.getElementById("globalStatus");
+ if ( successCnt == (statusRects.length) ) {
+ globalStatus.setAttributeNS(null, "class", "passedTest");
+ } else {
+ globalStatus.setAttributeNS(null, "class", "failedTest");
+ }
+
+ var successRatioString = "Test Result: " + successCnt + " / " +
statusRects.length;
+ var successRatio = document.getElementById("successRatio");
+ successRatio.replaceChild(document.createTextNode(successRatioString),
+ successRatio.getFirstChild());
}
1.2 +19 -36
xml-batik/samples/tests/resources/java/sources/com/untrusted/script/UntrustedScriptHandler.java
Index: UntrustedScriptHandler.java
===================================================================
RCS file:
/home/cvs/xml-batik/samples/tests/resources/java/sources/com/untrusted/script/UntrustedScriptHandler.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- UntrustedScriptHandler.java 30 Apr 2002 08:45:16 -0000 1.1
+++ UntrustedScriptHandler.java 30 Apr 2002 09:24:53 -0000 1.2
@@ -41,7 +41,7 @@
* back to the server that served the document containing this script.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: UntrustedScriptHandler.java,v 1.1 2002/04/30 08:45:16 vhardy Exp $
+ * @version $Id: UntrustedScriptHandler.java,v 1.2 2002/04/30 09:24:53 vhardy Exp $
*/
public class UntrustedScriptHandler implements ScriptHandler {
public static final String svgNS = "http://www.w3.org/2000/svg";
@@ -223,10 +223,12 @@
testButton.addEventListener("click", new EventListener() {
public void handleEvent(Event evt){
SecurityManager sm = System.getSecurityManager();
-
+ int successCnt = 0;
+
if (sm == null){
for (int i=0; i<nGranted; i++) {
statusRects[i].setAttributeNS(null, "class",
"passedTest");
+ successCnt++;
}
for (int i=nGranted; i<permissions.length; i++) {
statusRects[i].setAttributeNS(null, "class",
"failedTest");
@@ -239,19 +241,11 @@
try {
sm.checkPermission(p);
statusRects[i].setAttributeNS(null, "class",
"passedTest");
+ successCnt++;
} catch (SecurityException se){
statusRects[i].setAttributeNS(null, "class",
"failedTest");
System.out.println("*********************************************");
se.printStackTrace();
-
- /*Element tooltipDesc = doc.createElementNS(svgNS,
"desc");
-
tooltipDesc.appendChild(doc.createTextNode(se.getMessage()));
- Node curDesc = statusRects[i].getFirstChild();
- if (curDesc == null){
- statusRects[i].appendChild(tooltipDesc);
- } else {
- statusRects[i].replaceChild(tooltipDesc,
curDesc);
- }*/
}
}
@@ -263,39 +257,28 @@
statusRects[i].setAttributeNS(null, "class",
"failedTest");
} catch (SecurityException se){
statusRects[i].setAttributeNS(null, "class",
"passedTest");
+ successCnt++;
}
}
+
}
- }
- }, false);
- //
- // Register an event handler on elements
- //
- /* final EventTarget fileAccessTest =
(EventTarget)doc.getElementById("fileAccessTest");
- fileAccessTest.addEventListener("click", new EventListener() {
- public void handleEvent(Event evt){
- try {
- File f = new File("build.xml");
- long l = f.length();
-
- FileReader fr = new FileReader(f);
- char[] buf = new char[(int)l];
- fr.read(buf, 0, (int)l);
- String content = new String(buf);
- ((Element)fileAccessTest).setAttributeNS(null, "fill",
"rgb(255,0,0)");
- } catch (Exception e){
- ((Element)fileAccessTest).setAttributeNS(null, "fill",
"rgb(0,255,0)");
+ // Update the global status
+ Element globalStatus = doc.getElementById("globalStatus");
+ if ( successCnt == (statusRects.length) ) {
+ globalStatus.setAttributeNS(null, "class", "passedTest");
+ } else {
+ globalStatus.setAttributeNS(null, "class", "failedTest");
}
+
+ String successRatioString = "Test Result: " + successCnt + " /
" + statusRects.length;
+ Element successRatio = doc.getElementById("successRatio");
+
successRatio.replaceChild(doc.createTextNode(successRatioString),
+ successRatio.getFirstChild());
+
}
}, false);
- fileAccessTest.addEventListener("mouseover", new EventListener() {
- public void handleEvent(Event evt){
- ((Element)fileAccessTest).setAttributeNS(null, "fill", "gray");
- }
- }, false);*/
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]