vhardy 02/05/03 05:28:54
Modified: test-resources/org/apache/batik/test regard.xml
test-sources/org/apache/batik/test/svg
SelfContainedSVGOnLoadTest.java
Added: test-sources/org/apache/batik/bridge ScriptSelfTest.java
test-resources/org/apache/batik/bridge
ecmaCheckConstrain.svg ecmaCheckLoad.svg
ecmaCheckNoConstrain.svg ecmaCheckNoLoad.svg
ecmaCheckPermissionsDenied.svg
ecmaCheckPermissionsGranted.svg
ecmaScriptSecurity.svg ecmaScriptSecurity2.svg
unitTesting.xml
Log:
Added unit testing for ScriptSecurity (i.e., script loading control and contraining
script origin)
Revision Changes Path
1.25 +2 -1 xml-batik/test-resources/org/apache/batik/test/regard.xml
Index: regard.xml
===================================================================
RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/test/regard.xml,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- regard.xml 15 Apr 2002 10:16:18 -0000 1.24
+++ regard.xml 3 May 2002 12:28:53 -0000 1.25
@@ -11,7 +11,7 @@
<!-- regression testing. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: regard.xml,v 1.24 2002/04/15 10:16:18 hillion Exp $ -->
+<!-- @version $Id: regard.xml,v 1.25 2002/05/03 12:28:53 vhardy Exp $ -->
<!-- ========================================================================= -->
<testRun id="regard" name="Batik Standard Regression Test Run">
<testReportProcessor class="org.apache.batik.test.xml.XMLTestReportProcessor" >
@@ -54,6 +54,7 @@
<testSuite
href="file:test-resources/org/apache/batik/ext/awt/image/codec/unitTesting.xml" />
<testSuite
href="file:test-resources/org/apache/batik/ext/awt/geom/unitTesting.xml" />
<testSuite href="file:test-resources/org/apache/batik/util/unitTesting.xml" />
+ <testSuite href="file:test-resources/org/apache/batik/bridge/unitTesting.xml"
/>
<testSuite href="file:test-resources/org/apache/batik/css/dom/unitTesting.xml"
/>
<testSuite href="file:test-resources/org/apache/batik/dom/unitTesting.xml" />
<testSuite href="file:test-resources/org/apache/batik/dom/svg/unitTesting.xml"
/>
1.1
xml-batik/test-sources/org/apache/batik/bridge/ScriptSelfTest.java
Index: ScriptSelfTest.java
===================================================================
/*****************************************************************************
* 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. *
*****************************************************************************/
package org.apache.batik.bridge;
import java.net.URL;
import org.apache.batik.test.*;
import org.apache.batik.util.ApplicationSecurityEnforcer;
import org.apache.batik.test.svg.SelfContainedSVGOnLoadTest;
/**
* Helper class to simplify writing the unitTesting.xml file for
* the bridge.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
* @version $Id: ScriptSelfTest.java,v 1.1 2002/05/03 12:28:53 vhardy Exp $
*/
public class ScriptSelfTest extends SelfContainedSVGOnLoadTest {
boolean secure = true;
boolean constrain = true;
String scripts = "text/ecmascript, application/java-archive";
TestUserAgent userAgent = new TestUserAgent();
public void setId(String id){
super.setId(id);
svgURL = resolveURL("test-resources/org/apache/batik/bridge/" + id + ".svg");
}
public void setSecure(Boolean secure){
this.secure = secure.booleanValue();
}
public Boolean getSecure(){
return new Boolean(this.secure);
}
public void setConstrain(Boolean constrain){
this.constrain = constrain.booleanValue();
}
public Boolean getConstrain(){
return new Boolean(this.constrain);
}
public void setScripts(String scripts){
this.scripts = scripts;
}
public String getScripts(){
return scripts;
}
public TestReport runImpl() throws Exception{
ApplicationSecurityEnforcer ase
= new ApplicationSecurityEnforcer(this.getClass(),
"org/apache/batik/apps/svgbrowser/resources/svgbrowser.policy",
"dummy.jar");
if (secure) {
ase.enforceSecurity(true);
}
try {
return super.runImpl();
} finally {
ase.enforceSecurity(false);
}
}
protected UserAgent buildUserAgent(){
return userAgent;
}
class TestUserAgent extends UserAgentAdapter {
public ScriptSecurity getScriptSecurity(String scriptType,
URL scriptURL,
URL docURL){
if (scripts.indexOf(scriptType) == -1){
return new NoLoadScriptSecurity(scriptType);
} else {
if (constrain){
return new DefaultScriptSecurity(scriptType, scriptURL, docURL);
} else {
return new RelaxedScriptSecurity(scriptType, scriptURL, docURL);
}
}
}
}
}
1.2 +9 -2
xml-batik/test-sources/org/apache/batik/test/svg/SelfContainedSVGOnLoadTest.java
Index: SelfContainedSVGOnLoadTest.java
===================================================================
RCS file:
/home/cvs/xml-batik/test-sources/org/apache/batik/test/svg/SelfContainedSVGOnLoadTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SelfContainedSVGOnLoadTest.java 11 Apr 2002 08:07:24 -0000 1.1
+++ SelfContainedSVGOnLoadTest.java 3 May 2002 12:28:53 -0000 1.2
@@ -66,7 +66,7 @@
* </svg></code>
*
* @author <a href="mailto:[EMAIL PROTECTED]">Vincent Hardy</a>
- * @version $Id: SelfContainedSVGOnLoadTest.java,v 1.1 2002/04/11 08:07:24 vhardy
Exp $
+ * @version $Id: SelfContainedSVGOnLoadTest.java,v 1.2 2002/05/03 12:28:53 vhardy
Exp $
*/
public class SelfContainedSVGOnLoadTest extends AbstractTest {
/**
@@ -233,7 +233,7 @@
// Now that the SVG file has been loaded, build
// a GVT Tree from it
//
- UserAgent userAgent = new UserAgentAdapter();
+ UserAgent userAgent = buildUserAgent();
GVTBuilder builder = new GVTBuilder();
BridgeContext ctx = new BridgeContext(userAgent);
ctx.setDynamic(true);
@@ -318,6 +318,13 @@
}
return report;
+ }
+
+ /**
+ * Give subclasses a chance to build their own UserAgent
+ */
+ protected UserAgent buildUserAgent(){
+ return new UserAgentAdapter();
}
}
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckConstrain.svg
Index: ecmaCheckConstrain.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckConstrain.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $
-->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" result="passed"/>
<script type="text/ecmascript"
xlink:href="http://cvs.apache.org/viewcvs.cgi/~checkout~/xml-batik/test-resources/org/apache/batik/bridge/iWasLoaded.js?content-type=text/plain"
/>
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckLoad.svg
Index: ecmaCheckLoad.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckLoad.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $ -->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" result="failed"
errorCode="ecmascript.not.loaded"/>
<script type="text/ecmascript" xlink:href="iWasLoadedToo.js" />
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckNoConstrain.svg
Index: ecmaCheckNoConstrain.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckNoConstrain.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $
-->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" result="failed"
errorCode="ecmascript.not.loaded"/>
<script type="text/ecmascript"
xlink:href="http://cvs.apache.org/viewcvs.cgi/~checkout~/xml-batik/test-resources/org/apache/batik/bridge/iWasLoadedToo.js?content-type=text/plain"
/>
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckNoLoad.svg
Index: ecmaCheckNoLoad.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckNoLoad.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $ -->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" result="passed"/>
<script type="text/ecmascript" xlink:href="iWasLoaded.js" />
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsDenied.svg
Index: ecmaCheckPermissionsDenied.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckPermissionsDenied.svg,v 1.1 2002/05/03 12:28:53 vhardy
Exp $ -->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" />
<script type="text/ecmascript"><![CDATA[
importPackage(Packages.java.awt);
importPackage(Packages.java.io);
importPackage(Packages.java.lang.reflect);
importPackage(Packages.java.net);
importPackage(Packages.java.security);
importPackage(Packages.java.sql);
importPackage(Packages.java.util);
importPackage(Packages.javax.sound.sampled);
var svgNS = "http://www.w3.org/2000/svg";
var testNS = "http://xml.apache.org/batik/test";
var testedPath = "build.sh";
var testedHost = "nagoya.apache.org:8080";
var basePermissions = [
["AllPermission", new AllPermission()],
["FilePermission read", new FilePermission(testedPath, "read")],
["FilePermission write", new FilePermission(testedPath, "write")],
["FilePermission execute", new FilePermission(testedPath, "execute")],
["FilePermission delete", new FilePermission(testedPath, "delete")],
["SocketPermission accept", new SocketPermission(testedHost, "accept")],
["SocketPermission connect", new SocketPermission(testedHost, "connect")],
["SocketPermission listen", new SocketPermission(testedHost, "listen")],
["SocketPermission resolve", new SocketPermission(testedHost, "resolve")],
["AudioPermission play", new AudioPermission("play")],
["AudioPermission record", new AudioPermission("record")],
["AWTPermission accessClipboard", new AWTPermission("accessClipboard")],
["AWTPermission accessEventQueue", new AWTPermission("accessEventQueue")],
["AWTPermission listenToAllAWTEvents", new
AWTPermission("listenToAllAWTEvents")],
["AWTPermission showWindowWithoutWarningBanner", new
AWTPermission("showWindowWithoutWarningBanner")],
["AWTPermission readDisplayPixels", new AWTPermission("readDisplayPixels")],
["AWTPermission createRobot", new AWTPermission("createRobot")],
["AWTPermission fullScreenExclusive", new
AWTPermission("fullScreenExclusive")],
["NetPermission setDefaultAuthenticator", new
NetPermission("setDefaultAuthenticator")],
["NetPermission requestPasswordAuthentication", new
NetPermission("requestPasswordAuthentication")],
["NetPermission specifyStreamHandler", new
NetPermission("specifyStreamHandler")],
["PropertyPermission java.home read", new PropertyPermission("java.home",
"read")],
["PropertyPermission java.home write", new PropertyPermission("java.home",
"write")],
["ReflectPermission", new ReflectPermission("suppressAccessChecks")],
["RuntimePermission createClassLoader", new
RuntimePermission("createClassLoader")],
["RuntimePermission getClassLoader", new
RuntimePermission("getClassLoader")],
["RuntimePermission setContextClassLoader", new
RuntimePermission("setContextClassLoader")],
["RuntimePermission setSecurityManager", new
RuntimePermission("setSecurityManager")],
["RuntimePermission createSecurityManager", new
RuntimePermission("createSecurityManager")],
["RuntimePermission exitVM", new RuntimePermission("exitVM")],
["RuntimePermission shutdownHooks", new RuntimePermission("shutdownHooks")],
["RuntimePermission setFactory", new RuntimePermission("setFactory")],
["RuntimePermission setIO", new RuntimePermission("setIO")],
["RuntimePermission modifyThread", new RuntimePermission("modifyThread")],
["RuntimePermission stopThread", new RuntimePermission("stopThread")],
["RuntimePermission modifyThreadGroup", new
RuntimePermission("modifyThreadGroup")],
["RuntimePermission getProtectionDomain", new
RuntimePermission("getProtectionDomain")],
["RuntimePermission readFileDescriptor", new
RuntimePermission("readFileDescriptor")],
["RuntimePermission writeFileDescriptor", new
RuntimePermission("writeFileDescriptor")],
["RuntimePermission loadLibrary.{library name}", new
RuntimePermission("loadLibrary.{library name}")],
["RuntimePermission accessClassInPackage.java.security", new
RuntimePermission("accessClassInPackage.java.security")],
["RuntimePermission defineClassInPackage.java.lang", new
RuntimePermission("defineClassInPackage.java.lang")],
["RuntimePermission accessDeclaredMembers", new
RuntimePermission("accessDeclaredMembers")],
["RuntimePermission queuePrintJob", new RuntimePermission("queuePrintJob")],
["SecurityPermission createAccessControlContext", new
SerializablePermission("createAccessControlContext")],
["SecurityPermission getDomainCombiner", new
SerializablePermission("getDomainCombiner")],
["SecurityPermission getPolicy", new SerializablePermission("getPolicy")],
["SecurityPermission setPolicy", new SerializablePermission("setPolicy")],
["SecurityPermission setSystemScope", new
SerializablePermission("setSystemScope")],
["SecurityPermission setIdentityPublicKey", new
SerializablePermission("setIdentityPublicKey")],
["SecurityPermission setIdentityInfo", new
SerializablePermission("setIdentityInfo")],
["SecurityPermission addIdentityCertificate", new
SerializablePermission("addIdentityCertificate")],
["SecurityPermission removeIdentityCertificate", new
SerializablePermission("removeIdentityCertificate")],
["SecurityPermission printIdentity", new
SerializablePermission("printIdentity")],
["SecurityPermission getSignerPrivateKey", new
SerializablePermission("getSignerPrivateKey")],
["SecurityPermission setSignerKeyPair", new
SerializablePermission("setSignerKeyPair")],
["SerializablePermission enableSubclassImplementation", new
SerializablePermission("enableSubclassImplementation")],
["SerializablePermission enableSubstitution", new
SerializablePermission("enableSubstitution")],
["SQLPermission", new SQLPermission("setLog")],
];
var permissions = null;
var statusRects = null;
var nGranted = 0;
function init(){
var docURL = document.getURLObject();
if (docURL != null
&& (docURL.getHost() != null)
&& !( "" == docURL.getHost())
) {
permissions = new Array();
var docHost = docURL.getHost();
if (docURL.getPort() != -1) {
docHost += ":" + docURL.getPort();
}
permissions[0] = ["SocketPermission accept " + docHost,
new SocketPermission(docHost, "accept")];
permissions[1] = ["SocketPermission connect " + docHost,
new SocketPermission(docHost, "connect")];
permissions[2] = ["SocketPermission resolve " + docHost,
new SocketPermission(docHost, "resolve")];
// permissions.concat(basePermissions);
for (var i=0; i<basePermissions.length; i++){
permissions[3+i] = basePermissions[i];
}
nGranted = 3;
} else {
permissions = basePermissions;
}
}
init();
function runTest(){
var sm = System.getSecurityManager();
var successCnt = 0;
var unexpectedGrants = new Array();
var unexpectedDenial = new Array();
var unexpectedDenialCnt = 0;
var unexpectedGrantsCnt = 0;
if (sm == null){
for (var i=0; i<nGranted; i++) {
successCnt++;
}
for (var i=nGranted; i<permissions.length; i++) {
unexpectedGrants[unexpectedGrantsCnt] = permissions[i][0];
unexpectedGrantsCnt++;
}
}
else {
for (var i=0; i<nGranted; i++) {
var p = permissions[i][1];
var success = true;
try {
sm.checkPermission(p);
successCnt++;
} catch (se){
unexpectedDenial[unexpectedDenialCnt] = permissions[i][0];
unexpectedDenialCnt++;
}
}
for (var i=nGranted; i<permissions.length; i++) {
var p = permissions[i][1];
var success = true;
try {
sm.checkPermission(p);
unexpectedGrants[unexpectedGrantsCnt] = permissions[i][0];
unexpectedGrantsCnt++;
} catch (se){
successCnt++;
}
}
}
// Update the test's metadata
var result = document.getElementById("testResult");
if ( successCnt == permissions.length ) {
result.setAttributeNS(null, "result", "passed");
} else {
System.out.println("test failed: " + unexpectedGrantsCnt + " / " +
unexpectedDenialCnt);
result.setAttributeNS(null, "result", "failed");
result.setAttributeNS(null, "errorCode", "unexpected.grants.or.denials");
var unexpectedGrantsString = "";
var unexpectedDenialString = "";
for (var i=0; i<unexpectedGrantsCnt; i++) {
unexpectedGrantsString += unexpectedGrants[i];
}
for (var i=0; i<unexpectedDenialCnt; i++) {
unexpectedDenialString += unexpectedDenial[i];
}
System.out.println("unexpected.grants : " + unexpectedGrantsString);
var entry = null;
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.grants.count");
entry.setAttributeNS(null, "value", "" + unexpectedGrantsCnt);
result.appendChild(entry);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.grants");
entry.setAttributeNS(null, "value", unexpectedGrantsString);
result.appendChild(entry);
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.denials.count");
entry.setAttributeNS(null, "value", "" + unexpectedDenialCnt);
result.appendChild(entry);
System.out.println("unexpected.denials : " + unexpectedDenialString);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.denials");
entry.setAttributeNS(null, "value", unexpectedDenialString);
result.appendChild(entry);
}
}
]]></script>
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaCheckPermissionsGranted.svg
Index: ecmaCheckPermissionsGranted.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaCheckPermissionsGranted.svg,v 1.1 2002/05/03 12:28:53 vhardy
Exp $ -->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" />
<script type="text/ecmascript"><![CDATA[
importPackage(Packages.java.awt);
importPackage(Packages.java.io);
importPackage(Packages.java.lang.reflect);
importPackage(Packages.java.net);
importPackage(Packages.java.security);
importPackage(Packages.java.sql);
importPackage(Packages.java.util);
importPackage(Packages.javax.sound.sampled);
var svgNS = "http://www.w3.org/2000/svg";
var testNS = "http://xml.apache.org/batik/test";
var testedPath = "build.sh";
var testedHost = "nagoya.apache.org:8080";
var basePermissions = [
["AllPermission", new AllPermission()],
["FilePermission read", new FilePermission(testedPath, "read")],
["FilePermission write", new FilePermission(testedPath, "write")],
["FilePermission execute", new FilePermission(testedPath, "execute")],
["FilePermission delete", new FilePermission(testedPath, "delete")],
["SocketPermission accept", new SocketPermission(testedHost, "accept")],
["SocketPermission connect", new SocketPermission(testedHost, "connect")],
["SocketPermission listen", new SocketPermission(testedHost, "listen")],
["SocketPermission resolve", new SocketPermission(testedHost, "resolve")],
["AudioPermission play", new AudioPermission("play")],
["AudioPermission record", new AudioPermission("record")],
["AWTPermission accessClipboard", new AWTPermission("accessClipboard")],
["AWTPermission accessEventQueue", new AWTPermission("accessEventQueue")],
["AWTPermission listenToAllAWTEvents", new
AWTPermission("listenToAllAWTEvents")],
["AWTPermission showWindowWithoutWarningBanner", new
AWTPermission("showWindowWithoutWarningBanner")],
["AWTPermission readDisplayPixels", new AWTPermission("readDisplayPixels")],
["AWTPermission createRobot", new AWTPermission("createRobot")],
["AWTPermission fullScreenExclusive", new
AWTPermission("fullScreenExclusive")],
["NetPermission setDefaultAuthenticator", new
NetPermission("setDefaultAuthenticator")],
["NetPermission requestPasswordAuthentication", new
NetPermission("requestPasswordAuthentication")],
["NetPermission specifyStreamHandler", new
NetPermission("specifyStreamHandler")],
["PropertyPermission java.home read", new PropertyPermission("java.home",
"read")],
["PropertyPermission java.home write", new PropertyPermission("java.home",
"write")],
["ReflectPermission", new ReflectPermission("suppressAccessChecks")],
["RuntimePermission createClassLoader", new
RuntimePermission("createClassLoader")],
["RuntimePermission getClassLoader", new
RuntimePermission("getClassLoader")],
["RuntimePermission setContextClassLoader", new
RuntimePermission("setContextClassLoader")],
["RuntimePermission setSecurityManager", new
RuntimePermission("setSecurityManager")],
["RuntimePermission createSecurityManager", new
RuntimePermission("createSecurityManager")],
["RuntimePermission exitVM", new RuntimePermission("exitVM")],
["RuntimePermission shutdownHooks", new RuntimePermission("shutdownHooks")],
["RuntimePermission setFactory", new RuntimePermission("setFactory")],
["RuntimePermission setIO", new RuntimePermission("setIO")],
["RuntimePermission modifyThread", new RuntimePermission("modifyThread")],
["RuntimePermission stopThread", new RuntimePermission("stopThread")],
["RuntimePermission modifyThreadGroup", new
RuntimePermission("modifyThreadGroup")],
["RuntimePermission getProtectionDomain", new
RuntimePermission("getProtectionDomain")],
["RuntimePermission readFileDescriptor", new
RuntimePermission("readFileDescriptor")],
["RuntimePermission writeFileDescriptor", new
RuntimePermission("writeFileDescriptor")],
["RuntimePermission loadLibrary.{library name}", new
RuntimePermission("loadLibrary.{library name}")],
["RuntimePermission accessClassInPackage.java.security", new
RuntimePermission("accessClassInPackage.java.security")],
["RuntimePermission defineClassInPackage.java.lang", new
RuntimePermission("defineClassInPackage.java.lang")],
["RuntimePermission accessDeclaredMembers", new
RuntimePermission("accessDeclaredMembers")],
["RuntimePermission queuePrintJob", new RuntimePermission("queuePrintJob")],
["SecurityPermission createAccessControlContext", new
SerializablePermission("createAccessControlContext")],
["SecurityPermission getDomainCombiner", new
SerializablePermission("getDomainCombiner")],
["SecurityPermission getPolicy", new SerializablePermission("getPolicy")],
["SecurityPermission setPolicy", new SerializablePermission("setPolicy")],
["SecurityPermission setSystemScope", new
SerializablePermission("setSystemScope")],
["SecurityPermission setIdentityPublicKey", new
SerializablePermission("setIdentityPublicKey")],
["SecurityPermission setIdentityInfo", new
SerializablePermission("setIdentityInfo")],
["SecurityPermission addIdentityCertificate", new
SerializablePermission("addIdentityCertificate")],
["SecurityPermission removeIdentityCertificate", new
SerializablePermission("removeIdentityCertificate")],
["SecurityPermission printIdentity", new
SerializablePermission("printIdentity")],
["SecurityPermission getSignerPrivateKey", new
SerializablePermission("getSignerPrivateKey")],
["SecurityPermission setSignerKeyPair", new
SerializablePermission("setSignerKeyPair")],
["SerializablePermission enableSubclassImplementation", new
SerializablePermission("enableSubclassImplementation")],
["SerializablePermission enableSubstitution", new
SerializablePermission("enableSubstitution")],
["SQLPermission", new SQLPermission("setLog")],
];
var permissions = null;
var statusRects = null;
var nGranted = 0;
function init(){
var docURL = document.getURLObject();
if (docURL != null
&& (docURL.getHost() != null)
&& !( "" == docURL.getHost())
) {
permissions = new Array();
var docHost = docURL.getHost();
if (docURL.getPort() != -1) {
docHost += ":" + docURL.getPort();
}
permissions[0] = ["SocketPermission accept " + docHost,
new SocketPermission(docHost, "accept")];
permissions[1] = ["SocketPermission connect " + docHost,
new SocketPermission(docHost, "connect")];
permissions[2] = ["SocketPermission resolve " + docHost,
new SocketPermission(docHost, "resolve")];
// permissions.concat(basePermissions);
for (var i=0; i<basePermissions.length; i++){
permissions[3+i] = basePermissions[i];
}
nGranted = 3;
} else {
permissions = basePermissions;
}
}
init();
function runTest(){
var sm = System.getSecurityManager();
var successCnt = 0;
var unexpectedDenial = new Array();
var unexpectedDenialCnt = 0;
if (sm == null){
for (var i=0; i<permissions.length; i++) {
successCnt++;
}
}
else {
for (var i=0; i<permissions.length; i++) {
var p = permissions[i][1];
try {
sm.checkPermission(p);
successCnt++;
} catch (se){
unexpectedDenial[unexpectedDenialCnt] = permissions[i][0];
unexpectedDenialCnt++;
}
}
}
// Update the test's metadata
var result = document.getElementById("testResult");
if ( successCnt == permissions.length ) {
result.setAttributeNS(null, "result", "passed");
} else {
System.out.println("test failed: " + unexpectedDenialCnt);
result.setAttributeNS(null, "result", "failed");
result.setAttributeNS(null, "errorCode", "unexpected.denials");
var unexpectedDenialString = "";
for (var i=0; i<unexpectedDenialCnt; i++) {
unexpectedDenialString += unexpectedDenial[i];
}
var entry = null;
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.denials.count");
entry.setAttributeNS(null, "value", "" + unexpectedDenialCnt);
result.appendChild(entry);
System.out.println("unexpected.denials : " + unexpectedDenialString);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.denials");
entry.setAttributeNS(null, "value", unexpectedDenialString);
result.appendChild(entry);
}
}
]]></script>
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaScriptSecurity.svg
Index: ecmaScriptSecurity.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is not allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaScriptSecurity.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $
-->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" />
<script type="text/ecmascript"><![CDATA[
importPackage(Packages.java.awt);
importPackage(Packages.java.io);
importPackage(Packages.java.lang.reflect);
importPackage(Packages.java.net);
importPackage(Packages.java.security);
importPackage(Packages.java.sql);
importPackage(Packages.java.util);
importPackage(Packages.javax.sound.sampled);
var svgNS = "http://www.w3.org/2000/svg";
var testNS = "http://xml.apache.org/batik/test";
var testedPath = "build.sh";
var testedHost = "nagoya.apache.org:8080";
var basePermissions = [
["AllPermission", new AllPermission()],
["FilePermission read", new FilePermission(testedPath, "read")],
["FilePermission write", new FilePermission(testedPath, "write")],
["FilePermission execute", new FilePermission(testedPath, "execute")],
["FilePermission delete", new FilePermission(testedPath, "delete")],
["SocketPermission accept", new SocketPermission(testedHost, "accept")],
["SocketPermission connect", new SocketPermission(testedHost, "connect")],
["SocketPermission listen", new SocketPermission(testedHost, "listen")],
["SocketPermission resolve", new SocketPermission(testedHost, "resolve")],
["AudioPermission play", new AudioPermission("play")],
["AudioPermission record", new AudioPermission("record")],
["AWTPermission accessClipboard", new AWTPermission("accessClipboard")],
["AWTPermission accessEventQueue", new AWTPermission("accessEventQueue")],
["AWTPermission listenToAllAWTEvents", new
AWTPermission("listenToAllAWTEvents")],
["AWTPermission showWindowWithoutWarningBanner", new
AWTPermission("showWindowWithoutWarningBanner")],
["AWTPermission readDisplayPixels", new AWTPermission("readDisplayPixels")],
["AWTPermission createRobot", new AWTPermission("createRobot")],
["AWTPermission fullScreenExclusive", new
AWTPermission("fullScreenExclusive")],
["NetPermission setDefaultAuthenticator", new
NetPermission("setDefaultAuthenticator")],
["NetPermission requestPasswordAuthentication", new
NetPermission("requestPasswordAuthentication")],
["NetPermission specifyStreamHandler", new
NetPermission("specifyStreamHandler")],
["PropertyPermission java.home read", new PropertyPermission("java.home",
"read")],
["PropertyPermission java.home write", new PropertyPermission("java.home",
"write")],
["ReflectPermission", new ReflectPermission("suppressAccessChecks")],
["RuntimePermission createClassLoader", new
RuntimePermission("createClassLoader")],
["RuntimePermission getClassLoader", new
RuntimePermission("getClassLoader")],
["RuntimePermission setContextClassLoader", new
RuntimePermission("setContextClassLoader")],
["RuntimePermission setSecurityManager", new
RuntimePermission("setSecurityManager")],
["RuntimePermission createSecurityManager", new
RuntimePermission("createSecurityManager")],
["RuntimePermission exitVM", new RuntimePermission("exitVM")],
["RuntimePermission shutdownHooks", new RuntimePermission("shutdownHooks")],
["RuntimePermission setFactory", new RuntimePermission("setFactory")],
["RuntimePermission setIO", new RuntimePermission("setIO")],
["RuntimePermission modifyThread", new RuntimePermission("modifyThread")],
["RuntimePermission stopThread", new RuntimePermission("stopThread")],
["RuntimePermission modifyThreadGroup", new
RuntimePermission("modifyThreadGroup")],
["RuntimePermission getProtectionDomain", new
RuntimePermission("getProtectionDomain")],
["RuntimePermission readFileDescriptor", new
RuntimePermission("readFileDescriptor")],
["RuntimePermission writeFileDescriptor", new
RuntimePermission("writeFileDescriptor")],
["RuntimePermission loadLibrary.{library name}", new
RuntimePermission("loadLibrary.{library name}")],
["RuntimePermission accessClassInPackage.java.security", new
RuntimePermission("accessClassInPackage.java.security")],
["RuntimePermission defineClassInPackage.java.lang", new
RuntimePermission("defineClassInPackage.java.lang")],
["RuntimePermission accessDeclaredMembers", new
RuntimePermission("accessDeclaredMembers")],
["RuntimePermission queuePrintJob", new RuntimePermission("queuePrintJob")],
["SecurityPermission createAccessControlContext", new
SerializablePermission("createAccessControlContext")],
["SecurityPermission getDomainCombiner", new
SerializablePermission("getDomainCombiner")],
["SecurityPermission getPolicy", new SerializablePermission("getPolicy")],
["SecurityPermission setPolicy", new SerializablePermission("setPolicy")],
["SecurityPermission setSystemScope", new
SerializablePermission("setSystemScope")],
["SecurityPermission setIdentityPublicKey", new
SerializablePermission("setIdentityPublicKey")],
["SecurityPermission setIdentityInfo", new
SerializablePermission("setIdentityInfo")],
["SecurityPermission addIdentityCertificate", new
SerializablePermission("addIdentityCertificate")],
["SecurityPermission removeIdentityCertificate", new
SerializablePermission("removeIdentityCertificate")],
["SecurityPermission printIdentity", new
SerializablePermission("printIdentity")],
["SecurityPermission getSignerPrivateKey", new
SerializablePermission("getSignerPrivateKey")],
["SecurityPermission setSignerKeyPair", new
SerializablePermission("setSignerKeyPair")],
["SerializablePermission enableSubclassImplementation", new
SerializablePermission("enableSubclassImplementation")],
["SerializablePermission enableSubstitution", new
SerializablePermission("enableSubstitution")],
["SQLPermission", new SQLPermission("setLog")],
];
var permissions = null;
var statusRects = null;
var nGranted = 0;
function init(){
var docURL = document.getURLObject();
if (docURL != null
&& (docURL.getHost() != null)
&& !( "" == docURL.getHost())
) {
permissions = new Array();
var docHost = docURL.getHost();
if (docURL.getPort() != -1) {
docHost += ":" + docURL.getPort();
}
permissions[0] = ["SocketPermission accept " + docHost,
new SocketPermission(docHost, "accept")];
permissions[1] = ["SocketPermission connect " + docHost,
new SocketPermission(docHost, "connect")];
permissions[2] = ["SocketPermission resolve " + docHost,
new SocketPermission(docHost, "resolve")];
// permissions.concat(basePermissions);
for (var i=0; i<basePermissions.length; i++){
permissions[3+i] = basePermissions[i];
}
nGranted = 3;
} else {
permissions = basePermissions;
}
}
init();
function runTest(){
var sm = System.getSecurityManager();
var successCnt = 0;
var unexpectedGrants = new Array();
var unexpectedDenial = new Array();
var unexpectedDenialCnt = 0;
var unexpectedGrantsCnt = 0;
if (sm == null){
for (var i=0; i<nGranted; i++) {
successCnt++;
}
for (var i=nGranted; i<permissions.length; i++) {
unexpectedGrants[unexpectedGrantsCnt] = permissions[i][0];
unexpectedGrantsCnt++;
}
}
else {
for (var i=0; i<nGranted; i++) {
var p = permissions[i][1];
var success = true;
try {
sm.checkPermission(p);
successCnt++;
} catch (se){
unexpectedDenial[unexpectedDenialCnt] = permissions[i][0];
unexpectedDenialCnt++;
}
}
for (var i=nGranted; i<permissions.length; i++) {
var p = permissions[i][1];
var success = true;
try {
sm.checkPermission(p);
unexpectedGrants[unexpectedGrantsCnt] = permissions[i][0];
unexpectedGrantsCnt++;
} catch (se){
successCnt++;
}
}
}
// Update the test's metadata
var result = document.getElementById("testResult");
if ( successCnt == permissions.length ) {
result.setAttributeNS(null, "result", "passed");
} else {
System.out.println("test failed: " + unexpectedGrantsCnt + " / " +
unexpectedDenialCnt);
result.setAttributeNS(null, "result", "failed");
result.setAttributeNS(null, "errorCode", "unexpected.grants.or.denials");
var unexpectedGrantsString = "";
var unexpectedDenialString = "";
for (var i=0; i<unexpectedGrantsCnt; i++) {
unexpectedGrantsString += unexpectedGrants[i];
}
for (var i=0; i<unexpectedDenialCnt; i++) {
unexpectedDenialString += unexpectedDenial[i];
}
System.out.println("unexpected.grants : " + unexpectedGrantsString);
var entry = null;
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.grants.count");
entry.setAttributeNS(null, "value", "" + unexpectedGrantsCnt);
result.appendChild(entry);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.grants");
entry.setAttributeNS(null, "value", unexpectedGrantsString);
result.appendChild(entry);
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.denials.count");
entry.setAttributeNS(null, "value", "" + unexpectedDenialCnt);
result.appendChild(entry);
System.out.println("unexpected.denials : " + unexpectedDenialString);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.denials");
entry.setAttributeNS(null, "value", unexpectedDenialString);
result.appendChild(entry);
}
}
]]></script>
</svg>
1.1
xml-batik/test-resources/org/apache/batik/bridge/ecmaScriptSecurity2.svg
Index: ecmaScriptSecurity2.svg
===================================================================
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- Checks that access to critical functions is allowed. -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: ecmaScriptSecurity2.svg,v 1.1 2002/05/03 12:28:53 vhardy Exp $
-->
<!-- ========================================================================= -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:test="http://xml.apache.org/batik/test"
width="450" height="500" viewBox="0 0 450 500"
onload="runTest()">
<test:testResult id="testResult" />
<script type="text/ecmascript"><![CDATA[
importPackage(Packages.java.awt);
importPackage(Packages.java.io);
importPackage(Packages.java.lang.reflect);
importPackage(Packages.java.net);
importPackage(Packages.java.security);
importPackage(Packages.java.sql);
importPackage(Packages.java.util);
importPackage(Packages.javax.sound.sampled);
var svgNS = "http://www.w3.org/2000/svg";
var testNS = "http://xml.apache.org/batik/test";
var testedPath = "build.sh";
var testedHost = "nagoya.apache.org:8080";
var basePermissions = [
["AllPermission", new AllPermission()],
["FilePermission read", new FilePermission(testedPath, "read")],
["FilePermission write", new FilePermission(testedPath, "write")],
["FilePermission execute", new FilePermission(testedPath, "execute")],
["FilePermission delete", new FilePermission(testedPath, "delete")],
["SocketPermission accept", new SocketPermission(testedHost, "accept")],
["SocketPermission connect", new SocketPermission(testedHost, "connect")],
["SocketPermission listen", new SocketPermission(testedHost, "listen")],
["SocketPermission resolve", new SocketPermission(testedHost, "resolve")],
["AudioPermission play", new AudioPermission("play")],
["AudioPermission record", new AudioPermission("record")],
["AWTPermission accessClipboard", new AWTPermission("accessClipboard")],
["AWTPermission accessEventQueue", new AWTPermission("accessEventQueue")],
["AWTPermission listenToAllAWTEvents", new
AWTPermission("listenToAllAWTEvents")],
["AWTPermission showWindowWithoutWarningBanner", new
AWTPermission("showWindowWithoutWarningBanner")],
["AWTPermission readDisplayPixels", new AWTPermission("readDisplayPixels")],
["AWTPermission createRobot", new AWTPermission("createRobot")],
["AWTPermission fullScreenExclusive", new
AWTPermission("fullScreenExclusive")],
["NetPermission setDefaultAuthenticator", new
NetPermission("setDefaultAuthenticator")],
["NetPermission requestPasswordAuthentication", new
NetPermission("requestPasswordAuthentication")],
["NetPermission specifyStreamHandler", new
NetPermission("specifyStreamHandler")],
["PropertyPermission java.home read", new PropertyPermission("java.home",
"read")],
["PropertyPermission java.home write", new PropertyPermission("java.home",
"write")],
["ReflectPermission", new ReflectPermission("suppressAccessChecks")],
["RuntimePermission createClassLoader", new
RuntimePermission("createClassLoader")],
["RuntimePermission getClassLoader", new
RuntimePermission("getClassLoader")],
["RuntimePermission setContextClassLoader", new
RuntimePermission("setContextClassLoader")],
["RuntimePermission setSecurityManager", new
RuntimePermission("setSecurityManager")],
["RuntimePermission createSecurityManager", new
RuntimePermission("createSecurityManager")],
["RuntimePermission exitVM", new RuntimePermission("exitVM")],
["RuntimePermission shutdownHooks", new RuntimePermission("shutdownHooks")],
["RuntimePermission setFactory", new RuntimePermission("setFactory")],
["RuntimePermission setIO", new RuntimePermission("setIO")],
["RuntimePermission modifyThread", new RuntimePermission("modifyThread")],
["RuntimePermission stopThread", new RuntimePermission("stopThread")],
["RuntimePermission modifyThreadGroup", new
RuntimePermission("modifyThreadGroup")],
["RuntimePermission getProtectionDomain", new
RuntimePermission("getProtectionDomain")],
["RuntimePermission readFileDescriptor", new
RuntimePermission("readFileDescriptor")],
["RuntimePermission writeFileDescriptor", new
RuntimePermission("writeFileDescriptor")],
["RuntimePermission loadLibrary.{library name}", new
RuntimePermission("loadLibrary.{library name}")],
["RuntimePermission accessClassInPackage.java.security", new
RuntimePermission("accessClassInPackage.java.security")],
["RuntimePermission defineClassInPackage.java.lang", new
RuntimePermission("defineClassInPackage.java.lang")],
["RuntimePermission accessDeclaredMembers", new
RuntimePermission("accessDeclaredMembers")],
["RuntimePermission queuePrintJob", new RuntimePermission("queuePrintJob")],
["SecurityPermission createAccessControlContext", new
SerializablePermission("createAccessControlContext")],
["SecurityPermission getDomainCombiner", new
SerializablePermission("getDomainCombiner")],
["SecurityPermission getPolicy", new SerializablePermission("getPolicy")],
["SecurityPermission setPolicy", new SerializablePermission("setPolicy")],
["SecurityPermission setSystemScope", new
SerializablePermission("setSystemScope")],
["SecurityPermission setIdentityPublicKey", new
SerializablePermission("setIdentityPublicKey")],
["SecurityPermission setIdentityInfo", new
SerializablePermission("setIdentityInfo")],
["SecurityPermission addIdentityCertificate", new
SerializablePermission("addIdentityCertificate")],
["SecurityPermission removeIdentityCertificate", new
SerializablePermission("removeIdentityCertificate")],
["SecurityPermission printIdentity", new
SerializablePermission("printIdentity")],
["SecurityPermission getSignerPrivateKey", new
SerializablePermission("getSignerPrivateKey")],
["SecurityPermission setSignerKeyPair", new
SerializablePermission("setSignerKeyPair")],
["SerializablePermission enableSubclassImplementation", new
SerializablePermission("enableSubclassImplementation")],
["SerializablePermission enableSubstitution", new
SerializablePermission("enableSubstitution")],
["SQLPermission", new SQLPermission("setLog")],
];
var permissions = null;
var statusRects = null;
var nGranted = 0;
function init(){
var docURL = document.getURLObject();
if (docURL != null
&& (docURL.getHost() != null)
&& !( "" == docURL.getHost())
) {
permissions = new Array();
var docHost = docURL.getHost();
if (docURL.getPort() != -1) {
docHost += ":" + docURL.getPort();
}
permissions[0] = ["SocketPermission accept " + docHost,
new SocketPermission(docHost, "accept")];
permissions[1] = ["SocketPermission connect " + docHost,
new SocketPermission(docHost, "connect")];
permissions[2] = ["SocketPermission resolve " + docHost,
new SocketPermission(docHost, "resolve")];
// permissions.concat(basePermissions);
for (var i=0; i<basePermissions.length; i++){
permissions[3+i] = basePermissions[i];
}
nGranted = 3;
} else {
permissions = basePermissions;
}
}
init();
function runTest(){
var sm = System.getSecurityManager();
var successCnt = 0;
var unexpectedDenial = new Array();
var unexpectedDenialCnt = 0;
if (sm == null){
for (var i=0; i<permissions.length; i++) {
successCnt++;
}
}
else {
for (var i=0; i<permissions.length; i++) {
var p = permissions[i][1];
try {
sm.checkPermission(p);
successCnt++;
} catch (se){
unexpectedDenial[unexpectedDenialCnt] = permissions[i][0];
unexpectedDenialCnt++;
}
}
}
// Update the test's metadata
var result = document.getElementById("testResult");
if ( successCnt == permissions.length ) {
result.setAttributeNS(null, "result", "passed");
} else {
System.out.println("test failed: " + unexpectedDenialCnt);
result.setAttributeNS(null, "result", "failed");
result.setAttributeNS(null, "errorCode", "unexpected.denials");
var unexpectedDenialString = "";
for (var i=0; i<unexpectedDenialCnt; i++) {
unexpectedDenialString += unexpectedDenial[i];
}
var entry = null;
entry = document.createElementNS(testNS, "errorDescriptiongEntry");
entry.setAttributeNS(null, "id", "unexpected.denials.count");
entry.setAttributeNS(null, "value", "" + unexpectedDenialCnt);
result.appendChild(entry);
System.out.println("unexpected.denials : " + unexpectedDenialString);
entry = document.createElementNS(testNS, "errorDescriptionEntry");
entry.setAttributeNS(null, "id", "unexpected.denials");
entry.setAttributeNS(null, "value", unexpectedDenialString);
result.appendChild(entry);
}
}
]]></script>
</svg>
1.1 xml-batik/test-resources/org/apache/batik/bridge/unitTesting.xml
Index: unitTesting.xml
===================================================================
<!-- ========================================================================= -->
<!-- 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. -->
<!-- ========================================================================= -->
<!-- ========================================================================= -->
<!-- @author [EMAIL PROTECTED] -->
<!-- @version $Id: unitTesting.xml,v 1.1 2002/05/03 12:28:53 vhardy Exp $ -->
<!-- ========================================================================= -->
<testSuite id="bridge.unitTesting"
name="org.apache.batik.bridge package - Unit Testing">
<!-- ================================================================ -->
<!-- Script Permissions check -->
<!-- ================================================================ -->
<testGroup id="security" name="Script Security"
class="org.apache.batik.bridge.ScriptSelfTest">
<test id="ecmaCheckPermissionsDenied">
<property name="Secure" class="java.lang.Boolean" value="true" />
</test>
<test id="ecmaCheckPermissionsGranted">
<property name="Secure" class="java.lang.Boolean" value="false" />
</test>
<test id="ecmaCheckNoLoad">
<property name="Scripts" class="java.lang.String"
value="application/java-archive" />
</test>
<test id="ecmaCheckLoad">
<property name="Scripts" class="java.lang.String"
value="text/ecmascript" />
</test>
<test id="ecmaCheckConstrain">
<property name="Constrain" class="java.lang.Boolean"
value="true" />
</test>
<test id="ecmaCheckNoConstrain">
<property name="Constrain" class="java.lang.Boolean"
value="false" />
</test>
</testGroup>
</testSuite>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]