You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by dk...@apache.org on 2011/09/14 03:37:57 UTC
svn commit: r1170410 - in
/webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema:
XmlSchemaCollection.java utils/CollectionFactory.java
Author: dkulp
Date: Wed Sep 14 01:37:57 2011
New Revision: 1170410
URL: http://svn.apache.org/viewvc?rev=1170410&view=rev
Log:
Wrapper calls to System.getPropery within AccessController to allow controlling the access via a securitymanager.
Modified:
webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java
webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/utils/CollectionFactory.java
Modified: webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java
URL: http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java?rev=1170410&r1=1170409&r2=1170410&view=diff
==============================================================================
--- webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java (original)
+++ webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/XmlSchemaCollection.java Wed Sep 14 01:37:57 2011
@@ -21,6 +21,8 @@ package org.apache.ws.commons.schema;
import java.io.IOException;
import java.io.Reader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
@@ -355,11 +357,10 @@ public final class XmlSchemaCollection {
// extension registry class. if so we'll instantiate a new one
// and set it as the extension registry
// if there is an error, we'll just print out a message and move on.
-
- if (System.getProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY) != null) {
+ String extRegProp = getSystemProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY);
+ if (extRegProp != null) {
try {
- Class clazz = Class.forName(System
- .getProperty(Constants.SystemConstants.EXTENSION_REGISTRY_KEY));
+ Class clazz = Class.forName(extRegProp);
this.extReg = (ExtensionRegistry)clazz.newInstance();
} catch (ClassNotFoundException e) {
System.err.println("The specified extension registry class cannot be found!");
@@ -370,6 +371,18 @@ public final class XmlSchemaCollection {
}
}
}
+
+ private String getSystemProperty(final String s) {
+ try {
+ return AccessController.doPrivileged(new PrivilegedAction<String>() {
+ public String run() {
+ return System.getProperty(s);
+ }
+ });
+ } catch (SecurityException ex) {
+ return null;
+ }
+ }
private void setupBuiltinDatatypeHierarchy(XmlSchema xsd) {
Modified: webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/utils/CollectionFactory.java
URL: http://svn.apache.org/viewvc/webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/utils/CollectionFactory.java?rev=1170410&r1=1170409&r2=1170410&view=diff
==============================================================================
--- webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/utils/CollectionFactory.java (original)
+++ webservices/xmlschema/trunk/xmlschema-core/src/main/java/org/apache/ws/commons/schema/utils/CollectionFactory.java Wed Sep 14 01:37:57 2011
@@ -19,6 +19,8 @@
package org.apache.ws.commons.schema.utils;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -39,7 +41,15 @@ public final class CollectionFactory {
@Override
protected Boolean initialValue() {
- return Boolean.parseBoolean(System.getProperty(PROTECT_READ_ONLY_COLLECTIONS_PROP));
+ try {
+ return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ public Boolean run() {
+ return Boolean.parseBoolean(System.getProperty(PROTECT_READ_ONLY_COLLECTIONS_PROP));
+ }
+ });
+ } catch (SecurityException ex) {
+ return false;
+ }
}
};