Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/rhinoSecurity.js')
-rw-r--r--extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/rhinoSecurity.js233
1 files changed, 233 insertions, 0 deletions
diff --git a/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/rhinoSecurity.js b/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/rhinoSecurity.js
new file mode 100644
index 00000000000..f969911d63b
--- /dev/null
+++ b/extraplugins/diagram-definition/org.eclipse.papyrus.dd.editor/batik-1.7/samples/tests/resources/script/rhinoSecurity.js
@@ -0,0 +1,233 @@
+/*
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ */
+/**
+ * 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:vhardy@apache.org">Vincent Hardy</a>
+ * @version $Id: rhinoSecurity.js 475477 2006-11-15 22:44:28Z cam $
+ */
+
+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 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;
+ }
+
+ //
+ // Build a table in the scrollable area of the document
+ //
+ var securityResults = document.getElementById("securityResults");
+ statusRects = new Array();
+
+ for (var i=0; i<permissions.length; i++){
+ var textElt = document.createElementNS(svgNS, "text");
+ textElt.setAttributeNS(null, "x", "55");
+ textElt.setAttributeNS(null, "y", "" + (85 + i*20));
+ textElt.appendChild(document.createTextNode(permissions[i][0].toString()));
+ securityResults.appendChild(textElt);
+
+ var rectElt = document.createElementNS(svgNS, "rect");
+ rectElt.setAttributeNS(null, "x", "50");
+ rectElt.setAttributeNS(null, "y", "" + (70 + i*20));
+ rectElt.setAttributeNS(null, "width", "330");
+ rectElt.setAttributeNS(null, "height", "20" );
+ rectElt.setAttributeNS(null, "class", "tableCell");
+ securityResults.appendChild(rectElt);
+
+ rectElt = document.createElementNS(svgNS, "rect");
+ rectElt.setAttributeNS(null, "x", "380");
+ rectElt.setAttributeNS(null, "y", "" + (70 + i*20));
+ rectElt.setAttributeNS(null, "width", "20");
+ rectElt.setAttributeNS(null, "height", "20" );
+ rectElt.setAttributeNS(null, "class", "tableCell");
+ securityResults.appendChild(rectElt);
+
+ rectElt = document.createElementNS(svgNS, "rect");
+ rectElt.setAttributeNS(null, "x", "383");
+ rectElt.setAttributeNS(null, "y", "" + (73 + i*20));
+ rectElt.setAttributeNS(null, "width", "14");
+ rectElt.setAttributeNS(null, "height", "14" );
+ rectElt.setAttributeNS(null, "class", "untested");
+ securityResults.appendChild(rectElt);
+
+ statusRects[i] = rectElt;
+ }
+
+}
+
+init();
+
+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");
+ }
+ }
+ else {
+ for (var i=0; i<nGranted; i++) {
+ var p = permissions[i][1];
+ var success = true;
+ try {
+ sm.checkPermission(p);
+ statusRects[i].setAttributeNS(null, "class", "passedTest");
+ successCnt++;
+ } catch (se){
+ statusRects[i].setAttributeNS(null, "class", "failedTest");
+ se.printStackTrace();
+ }
+ }
+ for (var i=nGranted; i<permissions.length; i++) {
+ var p = permissions[i][1];
+ var success = true;
+ try {
+ sm.checkPermission(p);
+ 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());
+}

Back to the top