TOMEE-2013 trying to use security manager to access system properties when needed
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/7cf6e4fe Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/7cf6e4fe Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/7cf6e4fe Branch: refs/heads/master Commit: 7cf6e4fe147aaf76d8984361a84798aa67041e93 Parents: 274ff56 Author: rmannibucau <[email protected]> Authored: Wed Feb 8 10:07:59 2017 +0100 Committer: rmannibucau <[email protected]> Committed: Wed Feb 8 10:07:59 2017 +0100 ---------------------------------------------------------------------- .../org/apache/openejb/OpenEjbContainer.java | 7 +- .../apache/openejb/assembler/DeployerEjb.java | 15 +-- .../openejb/assembler/classic/Assembler.java | 3 +- .../assembler/classic/AssemblerTool.java | 9 +- .../classic/JaccPermissionsBuilder.java | 3 +- .../assembler/classic/cmd/Info2Properties.java | 7 +- .../java/org/apache/openejb/cli/Bootstrap.java | 11 ++- .../java/org/apache/openejb/cli/MainImpl.java | 5 +- .../ActivationConfigPropertyOverride.java | 3 +- .../apache/openejb/config/AppInfoBuilder.java | 3 +- .../openejb/config/ConfigurationFactory.java | 16 ++-- .../java/org/apache/openejb/config/Deploy.java | 3 +- .../apache/openejb/config/DeploymentLoader.java | 4 +- .../openejb/config/DeploymentsResolver.java | 3 +- .../openejb/config/EffectiveTomEEXml.java | 7 +- .../openejb/config/QuickServerXmlParser.java | 7 +- .../org/apache/openejb/config/RemoteServer.java | 26 ++--- .../org/apache/openejb/config/Undeploy.java | 3 +- .../openejb/config/VmDeploymentManager.java | 9 +- .../openejb/config/sys/JSonConfigReader.java | 5 +- .../openejb/config/sys/PropertiesAdapter.java | 3 +- .../openejb/core/ivm/naming/IvmContext.java | 5 +- .../openejb/core/managed/RAFPassivater.java | 7 +- .../openejb/core/managed/SimplePassivater.java | 3 +- .../core/rmi/BlacklistClassResolver.java | 6 +- .../core/security/AbstractSecurityService.java | 9 +- .../core/security/SecurityServiceImpl.java | 3 +- .../core/security/jaas/ScriptLoginModule.java | 7 +- .../openejb/core/stateful/RAFPassivater.java | 7 +- .../openejb/core/stateful/SimplePassivater.java | 3 +- .../core/webservices/ProviderWrapper.java | 19 ++-- .../openejb/core/webservices/UriResolver.java | 9 +- .../apache/openejb/log/SingleLineFormatter.java | 4 +- .../persistence/PersistenceBootstrap.java | 3 +- .../resource/jdbc/dbcp/BasicDataSource.java | 3 +- .../jdbc/dbcp/BasicManagedDataSource.java | 3 +- .../jdbc/plugin/DerbyDataSourcePlugin.java | 3 +- .../resource/quartz/QuartzResourceAdapter.java | 21 +++-- .../ri/sp/PseudoPolicyConfigurationFactory.java | 4 +- .../java/org/apache/openejb/table/Line.java | 4 +- .../java/org/apache/openejb/table/Lines.java | 4 +- .../openejb/testing/ApplicationComposers.java | 9 +- .../SingleApplicationComposerRunner.java | 3 +- .../openejb/util/JavaSecurityManagers.java | 99 ++++++++++++++++++++ .../openejb/util/JuliLogStreamFactory.java | 14 +-- .../openejb/util/Log4j2LogStreamFactory.java | 2 +- .../openejb/util/Log4jLogStreamFactory.java | 8 +- .../java/org/apache/openejb/util/Logger.java | 12 +-- .../org/apache/openejb/util/OpenEjbVersion.java | 4 +- .../apache/openejb/util/PropertiesService.java | 4 +- .../openejb/util/PropertyPlaceHolderHelper.java | 2 +- .../openejb/util/Slf4jLogStreamFactory.java | 6 +- .../apache/openejb/util/SuperProperties.java | 2 +- .../main/java/org/apache/openejb/util/URLs.java | 2 +- .../org/apache/openejb/util/UpdateChecker.java | 20 ++-- .../util/classloader/URLClassLoaderFirst.java | 3 +- .../openejb/util/helper/CommandHelper.java | 3 +- 57 files changed, 315 insertions(+), 157 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java index 8039dce..722b1de 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/OpenEjbContainer.java @@ -43,6 +43,7 @@ import org.apache.openejb.jee.oejb3.OpenejbJar; import org.apache.openejb.loader.Options; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.Exceptions; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Join; import org.apache.openejb.util.JuliLogStreamFactory; import org.apache.openejb.util.LogCategory; @@ -90,7 +91,7 @@ import static org.apache.openejb.cdi.ScopeHelper.stopContexts; public final class OpenEjbContainer extends EJBContainer { static { // if tomee embedded was ran we'll lost log otherwise - final String logManger = System.getProperty("java.util.logging.manager"); + final String logManger = JavaSecurityManagers.getSystemProperty("java.util.logging.manager"); if (logManger != null) { try { Thread.currentThread().getContextClassLoader().loadClass(logManger); @@ -242,8 +243,8 @@ public final class OpenEjbContainer extends EJBContainer { try { // reset to be able to run this container then tomee one etc... - if (System.getProperties().containsKey(Context.URL_PKG_PREFIXES)) { - System.getProperties().remove(Context.URL_PKG_PREFIXES); + if (JavaSecurityManagers.getSystemProperty(Context.URL_PKG_PREFIXES) != null) { + JavaSecurityManagers.removeSystemProperty(Context.URL_PKG_PREFIXES); } final Properties properties = new Properties(); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java index 1825095..1af4d55 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/DeployerEjb.java @@ -37,9 +37,16 @@ import org.apache.openejb.loader.Files; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.loader.provisining.ProvisioningResolver; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; +import javax.ejb.Lock; +import javax.ejb.Remote; +import javax.ejb.Singleton; +import javax.ejb.TransactionManagement; +import javax.enterprise.inject.Alternative; +import javax.validation.ValidationException; import java.io.File; import java.io.IOException; import java.io.InputStream; @@ -51,12 +58,6 @@ import java.util.Iterator; import java.util.Map; import java.util.Properties; import java.util.TreeMap; -import javax.ejb.Lock; -import javax.ejb.Remote; -import javax.ejb.Singleton; -import javax.ejb.TransactionManagement; -import javax.enterprise.inject.Alternative; -import javax.validation.ValidationException; import static javax.ejb.LockType.READ; import static javax.ejb.TransactionManagementType.BEAN; @@ -90,7 +91,7 @@ public class DeployerEjb implements Deployer { static { final String uniqueName = "OpenEJB-" + new BigInteger(128, new SecureRandom()).toString(Character.MAX_RADIX); - final String tempDir = System.getProperty("java.io.tmpdir"); + final String tempDir = JavaSecurityManagers.getSystemProperty("java.io.tmpdir"); File unique; try { unique = new File(tempDir, uniqueName).getCanonicalFile(); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java index 08eb1a3..cdf7ed2 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java @@ -124,6 +124,7 @@ import org.apache.openejb.util.Contexts; import org.apache.openejb.util.DaemonThreadFactory; import org.apache.openejb.util.Duration; import org.apache.openejb.util.ExecutorBuilder; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Join; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; @@ -446,7 +447,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A l.lock(); try { - final Properties systemProperties = System.getProperties(); + final Properties systemProperties = JavaSecurityManagers.getSystemProperties(); String str = systemProperties.getProperty(Context.URL_PKG_PREFIXES); if (str == null || clean) { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java index 4b684b4..728584d 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/AssemblerTool.java @@ -20,17 +20,18 @@ package org.apache.openejb.assembler.classic; import org.apache.openejb.Container; import org.apache.openejb.OpenEJBException; import org.apache.openejb.spi.SecurityService; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Messages; import org.apache.openejb.util.SafeToolkit; import org.apache.openejb.util.proxy.ProxyFactory; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; import javax.resource.spi.ConnectionManager; import javax.resource.spi.ManagedConnectionFactory; import javax.resource.spi.ResourceAdapter; import javax.transaction.TransactionManager; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; public class AssemblerTool { @@ -51,7 +52,7 @@ public class AssemblerTool { protected Properties props = new Properties(); static { - System.setProperty("noBanner", "true"); + JavaSecurityManagers.setSystemProperty("noBanner", "true"); } protected static void checkImplementation(final Class intrfce, final Class factory, final String serviceType, final String serviceName) throws OpenEJBException { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java index fc5c1f4..0276ec9 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JaccPermissionsBuilder.java @@ -21,6 +21,7 @@ import org.apache.openejb.BeanContext; import org.apache.openejb.InterfaceType; import org.apache.openejb.OpenEJBException; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; @@ -46,7 +47,7 @@ import static org.apache.openejb.assembler.classic.MethodInfoUtil.resolveAttribu public class JaccPermissionsBuilder { static { - System.setProperty("org.apache.security.jacc.EJBMethodPermission.methodInterfaces", "BusinessLocalHome,BusinessRemoteHome,BusinessRemote,BusinessLocal"); + JavaSecurityManagers.setSystemProperty("org.apache.security.jacc.EJBMethodPermission.methodInterfaces", "BusinessLocalHome,BusinessRemoteHome,BusinessRemote,BusinessLocal"); } public void install(final PolicyContext policyContext) throws OpenEJBException { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java index 5c201f6..9717a4f 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/cmd/Info2Properties.java @@ -28,6 +28,7 @@ import org.apache.commons.cli.PosixParser; import org.apache.openejb.assembler.classic.OpenEjbConfiguration; import org.apache.openejb.assembler.classic.ServiceInfo; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Messages; import org.apache.openejb.util.OpenEjbVersion; import org.apache.openejb.util.SuperProperties; @@ -143,7 +144,7 @@ public class Info2Properties { } public static void printConfig(final OpenEjbConfiguration configuration) { - printConfig(configuration, System.out, System.getProperty("line.separator")); + printConfig(configuration, System.out, JavaSecurityManagers.getSystemProperty("line.separator")); } public static void printConfig(final OpenEjbConfiguration configuration, final PrintStream out, final String cr) { @@ -205,12 +206,12 @@ public class Info2Properties { p.setSpaceBetweenProperties(false); p.setKeyValueSeparator(" = "); p.setLineSeparator(cr); - copyOpenEjbProperties(System.getProperties(), p); + copyOpenEjbProperties(JavaSecurityManagers.getSystemProperties(), p); copyOpenEjbProperties(SystemInstance.get().getProperties(), p); p.store(out, null); - final Properties p2 = System.getProperties(); + final Properties p2 = JavaSecurityManagers.getSystemProperties(); final String[] misc = {"os.version", "os.name", "os.arch", "java.version", "java.vendor"}; for (final String prop : misc) { comment(out, cr, prop + "=" + p2.get(prop)); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java index 4330f90..912f7d1 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cli/Bootstrap.java @@ -19,6 +19,7 @@ package org.apache.openejb.cli; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemClassPath; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.PropertyPlaceHolderHelper; import org.apache.openejb.util.URLs; @@ -46,7 +47,7 @@ public class Bootstrap { } } - final String homeProperty = System.getProperty(OPENEJB_HOME_PROPERTY_NAME); + final String homeProperty = JavaSecurityManagers.getSystemProperty(OPENEJB_HOME_PROPERTY_NAME); if (homeProperty != null) { if (new File(homeProperty).exists()) { return; @@ -69,7 +70,7 @@ public class Bootstrap { final File lib = jarFile.getParentFile(); final File home = lib.getParentFile().getCanonicalFile(); - System.setProperty(OPENEJB_HOME_PROPERTY_NAME, home.getAbsolutePath()); + JavaSecurityManagers.setSystemProperty(OPENEJB_HOME_PROPERTY_NAME, home.getAbsolutePath()); } } } catch (final Exception e) { @@ -81,12 +82,12 @@ public class Bootstrap { final String prop = arg.substring(arg.indexOf("-D") + 2, arg.indexOf("=")); final String val = arg.substring(arg.indexOf("=") + 1); - System.setProperty(prop, val); + JavaSecurityManagers.setSystemProperty(prop, val); } private static void setupClasspath() { - final String base = System.getProperty(OPENEJB_BASE_PROPERTY_NAME, ""); - final String home = System.getProperty("catalina.home", System.getProperty(OPENEJB_HOME_PROPERTY_NAME, base)); + final String base = JavaSecurityManagers.getSystemProperty(OPENEJB_BASE_PROPERTY_NAME, ""); + final String home = JavaSecurityManagers.getSystemProperty("catalina.home", JavaSecurityManagers.getSystemProperty(OPENEJB_HOME_PROPERTY_NAME, base)); try { final File lib = new File(home + File.separator + "lib"); final SystemClassPath systemCP = new SystemClassPath(); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java index 2764d34..9b18139 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/cli/MainImpl.java @@ -24,6 +24,7 @@ import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.commons.cli.PosixParser; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.OpenEjbVersion; import org.apache.openejb.util.OptionsLog; import org.apache.xbean.finder.ResourceFinder; @@ -168,7 +169,7 @@ public class MainImpl implements Main { final String prop = arg.substring(arg.indexOf("-D") + 2, arg.indexOf("=")); final String val = arg.substring(arg.indexOf("=") + 1); - System.setProperty(prop, val); + JavaSecurityManagers.setSystemProperty(prop, val); } } @@ -192,7 +193,7 @@ public class MainImpl implements Main { final String prop = arg.substring(idx + 2, eq); final String val = arg.substring(eq + 1); - System.setProperty(prop, val); + JavaSecurityManagers.setSystemProperty(prop, val); systemInstance.setProperty(prop, val); } else { argsList.add(arg); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java b/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java index 73afb18..597c13b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/ActivationConfigPropertyOverride.java @@ -26,6 +26,7 @@ import org.apache.openejb.jee.MessageDrivenBean; import org.apache.openejb.jee.oejb3.EjbDeployment; import org.apache.openejb.jee.oejb3.OpenejbJar; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.PropertyPlaceHolderHelper; @@ -47,7 +48,7 @@ public class ActivationConfigPropertyOverride implements DynamicDeployer { final Properties system = new Properties(); system.putAll(SystemInstance.get().getProperties()); system.putAll(appModule.getProperties()); - system.putAll(System.getProperties()); + system.putAll(JavaSecurityManagers.getSystemProperties()); for (final EjbModule ejbModule : appModule.getEjbModules()) { final EjbJar ejbJar = ejbModule.getEjbJar(); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java index 5933362..80d1b73 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/AppInfoBuilder.java @@ -79,6 +79,7 @@ import org.apache.openejb.jpa.integration.MakeTxLookup; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.persistence.PersistenceBootstrap; import org.apache.openejb.util.CircularReferencesException; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.Messages; @@ -962,7 +963,7 @@ class AppInfoBuilder { private static void override(final Properties appProperties, final PersistenceUnitInfo info, final String prefix) { final Properties propertiesToCheckForOverridings = new Properties(); propertiesToCheckForOverridings.putAll(appProperties); - propertiesToCheckForOverridings.putAll(System.getProperties()); + propertiesToCheckForOverridings.putAll(JavaSecurityManagers.getSystemProperties()); propertiesToCheckForOverridings.putAll(SystemInstance.get().getProperties()); final Properties overrides = ConfigurationFactory.getOverrides(propertiesToCheckForOverridings, prefix, "PersistenceUnit"); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java index a348da3..9a2b8b4 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java @@ -86,6 +86,7 @@ import org.apache.openejb.monitoring.LocalMBeanServer; import org.apache.openejb.resource.jdbc.DataSourceFactory; import org.apache.openejb.resource.jdbc.pool.DataSourceCreator; import org.apache.openejb.resource.jdbc.pool.DefaultDataSourceCreator; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.Messages; @@ -155,16 +156,13 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { public ConfigurationFactory() { this(!shouldAutoDeploy()); - System.setProperty("bval.in-container", "true"); } private static boolean exists(final String s) { try { ConfigurationFactory.class.getClassLoader().loadClass(s); return true; - } catch (final ClassNotFoundException e) { - return false; - } catch (final NoClassDefFoundError e) { + } catch (final ClassNotFoundException | NoClassDefFoundError e) { return false; } } @@ -180,6 +178,8 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { } public ConfigurationFactory(final boolean offline, final DynamicDeployer preAutoConfigDeployer) { + JavaSecurityManagers.setSystemProperty("bval.in-container", JavaSecurityManagers.getSystemProperty("bval.in-container","true")); + this.offline = offline; this.serviceTypeIsAdjustable = SystemInstance.get().getOptions().get("openejb.service-type-adjustement", true); this.deploymentLoader = new DeploymentLoader(); @@ -494,7 +494,7 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { final String name = sp.getName(); final String value = sp.getValue(); SystemInstance.get().setProperty(name, value); - System.setProperty(name, value); + JavaSecurityManagers.setSystemProperty(name, value); } loadPropertiesDeclaredConfiguration(openejb); @@ -728,7 +728,7 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { public static void loadPropertiesDeclaredConfiguration(final Openejb openejb) { - final Properties sysProps = new Properties(System.getProperties()); + final Properties sysProps = new Properties(JavaSecurityManagers.getSystemProperties()); sysProps.putAll(SystemInstance.get().getProperties()); fillOpenEjb(openejb, sysProps); } @@ -1319,7 +1319,7 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { continue; } types.add(type); - sb.append(System.getProperty("line.separator")); + sb.append(JavaSecurityManagers.getSystemProperty("line.separator")); sb.append(" <").append(p.getService()); sb.append(" id=\"").append(service.getId()).append('"'); sb.append(" type=\"").append(type).append("\"/>"); @@ -1533,7 +1533,7 @@ public class ConfigurationFactory implements OpenEjbConfigurationFactory { protected static Properties getSystemProperties(final String serviceId, final String serviceType) { // Override with system properties - final Properties sysProps = new Properties(System.getProperties()); + final Properties sysProps = new Properties(JavaSecurityManagers.getSystemProperties()); sysProps.putAll(SystemInstance.get().getProperties()); return getOverrides(sysProps, serviceId, serviceType); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java b/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java index 67ae90d..52a7fea 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/Deploy.java @@ -41,6 +41,7 @@ import org.apache.openejb.cli.SystemExitException; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.JarExtractor; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Messages; import org.apache.openejb.util.OpenEjbVersion; @@ -139,7 +140,7 @@ public class Deploy { String serverUrl = line.getOptionValue("server-url", defaultServerUrl); if ("auto".equalsIgnoreCase(serverUrl.trim())) { try { - final File sXml = new File(System.getProperty("openejb.base", "conf/server.xml")); + final File sXml = new File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml")); if (sXml.exists()) { final QuickServerXmlParser result = QuickServerXmlParser.parse(sXml); serverUrl = "http://" + result.host() + ":" + result.http() + "/tomee/ejb"; http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java index 2d2f22a..1135c07 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java @@ -50,6 +50,7 @@ import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.sxc.ApplicationXml; import org.apache.openejb.util.AnnotationFinder; import org.apache.openejb.util.JarExtractor; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.URLs; @@ -1117,7 +1118,8 @@ public class DeploymentLoader implements DeploymentFilterable { || name.endsWith("tomcat-websocket.jar") || name.startsWith("commons-jcs-") || name.startsWith("xx-arquillian-tomee") - || ("lib".equals(name) && file.isDirectory() && new File(System.getProperty("openejb.base", "-")).equals(file.getParentFile()))) { + || ("lib".equals(name) && file.isDirectory() && + new File(JavaSecurityManagers.getSystemProperty("openejb.base", "-")).equals(file.getParentFile()))) { it.remove(); } } http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java index d95d72b..8ae340b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentsResolver.java @@ -22,6 +22,7 @@ import org.apache.openejb.loader.FileUtils; import org.apache.openejb.loader.Files; import org.apache.openejb.loader.Options; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Logger; import org.apache.openejb.util.URLs; import org.apache.xbean.finder.UrlSet; @@ -462,7 +463,7 @@ public class DeploymentsResolver implements DeploymentFilterable { } } - final boolean isWindows = System.getProperty("os.name", "unknown").toLowerCase(Locale.ENGLISH).startsWith("windows"); + final boolean isWindows = JavaSecurityManagers.getSystemProperty("os.name", "unknown").toLowerCase(Locale.ENGLISH).startsWith("windows"); if (!isWindows) { urls = urlSet.getUrls(); } else { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java b/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java index 958b5ca..2104df7 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/EffectiveTomEEXml.java @@ -27,9 +27,10 @@ import org.apache.openejb.cli.SystemExitException; import org.apache.openejb.config.sys.JaxbOpenejb; import org.apache.openejb.config.sys.Openejb; import org.apache.openejb.config.sys.Resource; +import org.apache.openejb.util.JavaSecurityManagers; -import java.io.File; import javax.xml.bind.Marshaller; +import java.io.File; import static java.util.Arrays.asList; @@ -90,7 +91,9 @@ public final class EffectiveTomEEXml { } else { for(final String config : asList("tomee.xml", "openejb.xml")) { xml = new File( // we shouldnt go to catalina.base, just a fallback - System.getProperty("openejb.base", System.getProperty("openejb.home", System.getProperty("catalina.base", "missing"))), + JavaSecurityManagers.getSystemProperty("openejb.base", + JavaSecurityManagers.getSystemProperty("openejb.home", + JavaSecurityManagers.getSystemProperty("catalina.base", "missing"))), config); if (xml.isFile()) { break; http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java b/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java index cee93f7..3184721 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/QuickServerXmlParser.java @@ -16,16 +16,17 @@ */ package org.apache.openejb.config; +import org.apache.openejb.util.JavaSecurityManagers; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; import java.io.ByteArrayInputStream; import java.io.File; import java.util.Map; import java.util.TreeMap; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; public class QuickServerXmlParser extends DefaultHandler { private static final SAXParserFactory FACTORY = SAXParserFactory.newInstance(); @@ -49,7 +50,7 @@ public class QuickServerXmlParser extends DefaultHandler { public static final String DEFAULT_AJP_PORT = "8009"; public static final String DEFAULT_HOST = "localhost"; public static final String DEFAULT_APP_BASE = "webapps"; - public static final String DEFAULT_KEYSTORE = new File(System.getProperty("user.home"), ".keystore").getAbsolutePath(); + public static final String DEFAULT_KEYSTORE = new File(JavaSecurityManagers.getSystemProperty("user.home"), ".keystore").getAbsolutePath(); private final Map<String, String> values = new TreeMap<String, String>(String.CASE_INSENSITIVE_ORDER); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java index 1a0a0b6..8fad3ff 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/RemoteServer.java @@ -20,6 +20,7 @@ package org.apache.openejb.config; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.Options; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Join; import java.io.File; @@ -51,7 +52,7 @@ import java.util.Locale; @SuppressWarnings("UseOfSystemOutOrSystemErr") public class RemoteServer { - private static final Options options = new Options(System.getProperties()); + private static final Options options = new Options(JavaSecurityManagers.getSystemProperties()); public static final String SERVER_DEBUG_PORT = "server.debug.port"; public static final String SERVER_SHUTDOWN_PORT = "server.shutdown.port"; public static final String SERVER_SHUTDOWN_HOST = "server.shutdown.host"; @@ -64,7 +65,7 @@ public class RemoteServer { private boolean debug = options.get(OPENEJB_SERVER_DEBUG, false); private final boolean profile = options.get("openejb.server.profile", false); private final boolean tomcat; - private final String javaOpts = System.getProperty("java.opts"); + private final String javaOpts = JavaSecurityManagers.getSystemProperty("java.opts"); private String additionalClasspath; /** @@ -187,10 +188,11 @@ public class RemoteServer { } final File home = getHome(); - final String javaVersion = System.getProperty("java.version"); + final String javaVersion = JavaSecurityManagers.getSystemProperty("java.version"); if (verbose) { System.out.println("OPENEJB_HOME = " + home.getAbsolutePath()); - final String systemInfo = "Java " + javaVersion + "; " + System.getProperty("os.name") + "/" + System.getProperty("os.version"); + final String systemInfo = "Java " + javaVersion + "; " + + JavaSecurityManagers.getSystemProperty("os.name") + "/" + JavaSecurityManagers.getSystemProperty("os.version"); System.out.println("SYSTEM_INFO = " + systemInfo); } @@ -212,12 +214,13 @@ public class RemoteServer { //File openejbJar = new File(lib, "openejb-core-" + version + ".jar"); final String java; - final boolean isWindows = System.getProperty("os.name", "unknown").toLowerCase(Locale.ENGLISH).startsWith("windows"); + final boolean isWindows = JavaSecurityManagers.getSystemProperty("os.name", "unknown") + .toLowerCase(Locale.ENGLISH).startsWith("windows"); if (isWindows && START.equals(cmd) && options.get("server.windows.fork", false)) { // run and forget - java = new File(System.getProperty("java.home"), "bin/javaw").getAbsolutePath(); + java = new File(JavaSecurityManagers.getSystemProperty("java.home"), "bin/javaw").getAbsolutePath(); } else { - java = new File(System.getProperty("java.home"), "bin/java").getAbsolutePath(); + java = new File(JavaSecurityManagers.getSystemProperty("java.home"), "bin/java").getAbsolutePath(); } final List<String> argsList = new ArrayList<String>(20); @@ -423,7 +426,7 @@ public class RemoteServer { } public void kill3UNIX() { // debug purpose only - if (System.getProperty("os.name", "unknown").toLowerCase(Locale.ENGLISH).startsWith("windows")) { + if (JavaSecurityManagers.getSystemProperty("os.name", "unknown").toLowerCase(Locale.ENGLISH).startsWith("windows")) { return; } @@ -485,8 +488,9 @@ public class RemoteServer { } private void addIfSet(final List<String> argsList, final String key) { - if (System.getProperties().containsKey(key)) { - argsList.add("-D" + key + "=" + System.getProperty(key)); + final String systemProperty = JavaSecurityManagers.getSystemProperty(key); + if (systemProperty != null) { + argsList.add("-D" + key + "=" + systemProperty); } } @@ -495,7 +499,7 @@ public class RemoteServer { return home; } - final String openejbHome = System.getProperty("openejb.home"); + final String openejbHome = JavaSecurityManagers.getSystemProperty("openejb.home"); if (openejbHome != null) { home = new File(openejbHome); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java b/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java index cfb1990..aea69cf 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/Undeploy.java @@ -29,6 +29,7 @@ import org.apache.openejb.NoSuchApplicationException; import org.apache.openejb.UndeployException; import org.apache.openejb.assembler.Deployer; import org.apache.openejb.cli.SystemExitException; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Messages; import org.apache.openejb.util.OpenEjbVersion; @@ -90,7 +91,7 @@ public class Undeploy { String serverUrl = line.getOptionValue("server-url", defaultServerUrl); if ("auto".equalsIgnoreCase(serverUrl.trim())) { try { - final File sXml = new File(System.getProperty("openejb.base", "conf/server.xml")); + final File sXml = new File(JavaSecurityManagers.getSystemProperty("openejb.base", "conf/server.xml")); if (sXml.exists()) { final QuickServerXmlParser result = QuickServerXmlParser.parse(sXml); serverUrl = "http://" + result.host() + ":" + result.http() + "/tomee/ejb"; http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java b/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java index 849a9a8..337ac8a 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/VmDeploymentManager.java @@ -29,6 +29,7 @@ import org.apache.openejb.assembler.classic.EjbJarInfo; import org.apache.openejb.assembler.classic.InfoObject; import org.apache.openejb.assembler.classic.WebAppInfo; import org.apache.openejb.loader.IO; +import org.apache.openejb.util.JavaSecurityManagers; import javax.enterprise.deploy.model.DeployableObject; import javax.enterprise.deploy.shared.ActionType; @@ -84,7 +85,7 @@ public class VmDeploymentManager implements DeploymentManager { private boolean deployerLocal; public VmDeploymentManager() { - final String openejbHome = System.getProperty("openejb.home"); + final String openejbHome = JavaSecurityManagers.getSystemProperty("openejb.home"); final File openejbHomeDir = new File(openejbHome); if (!openejbHomeDir.exists()) { throw new IllegalArgumentException("OpenEJB home dir does not exist: " + openejbHomeDir); @@ -93,7 +94,7 @@ public class VmDeploymentManager implements DeploymentManager { throw new IllegalArgumentException("OpenEJB home dir is not a directory: " + openejbHomeDir); } - String openejbUri = System.getProperty("openejb.server.uri"); + String openejbUri = JavaSecurityManagers.getSystemProperty("openejb.server.uri"); if (openejbUri == null) { try { openejbUri = new URI("ejbd", null, "localhost", 4201, null, null, null).toString(); @@ -106,7 +107,7 @@ public class VmDeploymentManager implements DeploymentManager { } private Deployer getDeployer() { - final String deployerJndi = System.getProperty("openejb.deployer.jndiname", "openejb/DeployerBusinessRemote"); + final String deployerJndi = JavaSecurityManagers.getSystemProperty("openejb.deployer.jndiname", "openejb/DeployerBusinessRemote"); if (deployer == null) { try { @@ -354,7 +355,7 @@ public class VmDeploymentManager implements DeploymentManager { return new ProgressObjectImpl(CommandType.DISTRIBUTE, Collections.singleton(targetModuleId)); } catch (ValidationFailedException e) { - final String s = System.getProperty(ReportValidationResults.VALIDATION_LEVEL, "3"); + final String s = JavaSecurityManagers.getSystemProperty(ReportValidationResults.VALIDATION_LEVEL, "3"); final int level = Integer.parseInt(s); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java index 6a30240..5130d26 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/JSonConfigReader.java @@ -19,6 +19,7 @@ package org.apache.openejb.config.sys; import org.apache.openejb.OpenEJBException; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.SimpleJSonParser; import org.xml.sax.helpers.AttributesImpl; import org.xml.sax.helpers.DefaultHandler; @@ -28,9 +29,9 @@ import java.io.IOException; import java.io.InputStream; import java.util.Arrays; import java.util.Collection; +import java.util.Locale; import java.util.Map; import java.util.Properties; -import java.util.Locale; public class JSonConfigReader { private static final String COMMENT_KEY = "__"; @@ -141,7 +142,7 @@ public class JSonConfigReader { // set it for openejb AND the JVM since that's probably too late to let it be done automatically SystemInstance.get().setProperty(key, str); - System.setProperty(key, str); + JavaSecurityManagers.setSystemProperty(key, str); } else { setProperties(key + '.', map(value)); } http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java index 3cded7b..358b68a 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/sys/PropertiesAdapter.java @@ -18,6 +18,7 @@ package org.apache.openejb.config.sys; import org.apache.openejb.loader.IO; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.SuperProperties; import javax.xml.bind.annotation.adapters.XmlAdapter; @@ -44,7 +45,7 @@ public class PropertiesAdapter extends XmlAdapter<String, Properties> { if (!(properties instanceof SuperProperties)) { // First comment is added by properties.store() - string = string.replaceFirst("#.*?" + System.getProperty("line.separator"), ""); + string = string.replaceFirst("#.*?" + JavaSecurityManagers.getSystemProperty("line.separator"), ""); } return string; http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java index 0669b0d..f6175d4 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/naming/IvmContext.java @@ -23,6 +23,7 @@ import org.apache.openejb.core.ivm.IntraVmProxy; import org.apache.openejb.core.ivm.naming.java.javaURLContextFactory; import org.apache.openejb.core.ivm.naming.openejb.openejbURLContextFactory; import org.apache.openejb.loader.IO; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.xbean.naming.context.ContextUtil; import javax.naming.Binding; @@ -237,7 +238,7 @@ public class IvmContext implements Context, Serializable { private static String getUrlPackagePrefixes() { // 1. System.getProperty - String urlPackagePrefixes = System.getProperty(Context.URL_PKG_PREFIXES); + String urlPackagePrefixes = JavaSecurityManagers.getSystemProperty(Context.URL_PKG_PREFIXES); // 2. Thread.currentThread().getContextClassLoader().getResources("jndi.properties") if (urlPackagePrefixes == null) { @@ -260,7 +261,7 @@ public class IvmContext implements Context, Serializable { // 3. ${java.home}/lib/jndi.properties if (urlPackagePrefixes == null) { - final String javahome = System.getProperty("java.home"); + final String javahome = JavaSecurityManagers.getSystemProperty("java.home"); if (javahome != null) { InputStream in = null; try { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java index 0827dcc..4d1b026 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/RAFPassivater.java @@ -19,6 +19,7 @@ package org.apache.openejb.core.managed; import org.apache.openejb.SystemException; import org.apache.openejb.spi.Serializer; +import org.apache.openejb.util.JavaSecurityManagers; import java.io.File; import java.io.RandomAccessFile; @@ -52,7 +53,8 @@ public class RAFPassivater implements PassivationStrategy { public synchronized void passivate(final Map stateTable) throws SystemException { try (final RandomAccessFile ras = - new RandomAccessFile(System.getProperty("java.io.tmpdir", File.separator + "tmp") + File.separator + "passivation" + fileID + ".ser", "rw")) { + new RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp") + + File.separator + "passivation" + fileID + ".ser", "rw")) { fileID++; final Iterator iterator = stateTable.keySet().iterator(); @@ -86,7 +88,8 @@ public class RAFPassivater implements PassivationStrategy { } try (final RandomAccessFile ras = - new RandomAccessFile(System.getProperty("java.io.tmpdir", File.separator + "tmp") + File.separator + "passivation" + pointer.fileid + ".ser", "r")) { + new RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp") + + File.separator + "passivation" + pointer.fileid + ".ser", "r")) { final byte[] bytes = new byte[pointer.bytesize]; ras.seek(pointer.filepointer); ras.readFully(bytes); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java index 40be8de..aa84b03 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/managed/SimplePassivater.java @@ -22,6 +22,7 @@ import org.apache.openejb.core.EnvProps; import org.apache.openejb.core.ObjectInputStreamFiltered; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; @@ -56,7 +57,7 @@ public class SimplePassivater implements PassivationStrategy { if (dir != null) { sessionDirectory = SystemInstance.get().getBase().getDirectory(dir).getAbsoluteFile(); } else { - sessionDirectory = new File(System.getProperty("java.io.tmpdir", File.separator + "tmp")).getAbsoluteFile(); + sessionDirectory = new File(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp")).getAbsoluteFile(); } if (!sessionDirectory.exists() && !sessionDirectory.mkdirs()) { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java index 55065de..8638e7c 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/rmi/BlacklistClassResolver.java @@ -16,15 +16,17 @@ */ package org.apache.openejb.core.rmi; +import org.apache.openejb.util.JavaSecurityManagers; + import java.io.ObjectStreamClass; import java.util.regex.Pattern; public class BlacklistClassResolver { public static final BlacklistClassResolver DEFAULT = new BlacklistClassResolver( - toArray(System.getProperty( + toArray(JavaSecurityManagers.getSystemProperty( "tomee.serialization.class.blacklist", "org.codehaus.groovy.runtime.,org.apache.commons.collections.functors.,org.apache.xalan,java.lang.Process")), - toArray(System.getProperty("tomee.serialization.class.whitelist"))); + toArray(JavaSecurityManagers.getSystemProperty("tomee.serialization.class.whitelist"))); public static final Pattern PRIMITIVE_ARRAY = Pattern.compile("^\\[+[BCDFIJSVZ]$"); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java index 17b2585..fe89ef1 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/AbstractSecurityService.java @@ -28,6 +28,7 @@ import org.apache.openejb.core.security.jacc.BasicPolicyConfiguration; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.CallerPrincipal; import org.apache.openejb.spi.SecurityService; +import org.apache.openejb.util.JavaSecurityManagers; import javax.security.auth.Subject; import javax.security.auth.login.LoginException; @@ -73,7 +74,7 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se } public AbstractSecurityService(final String jaccProvider) { - System.setProperty(JaccProvider.class.getName(), jaccProvider); + JavaSecurityManagers.setSystemProperty(JaccProvider.class.getName(), jaccProvider); installJacc(); @@ -340,8 +341,8 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se final String providerKey = "javax.security.jacc.PolicyConfigurationFactory.provider"; try { - if (System.getProperty(providerKey) == null) { - System.setProperty(providerKey, JaccProvider.Factory.class.getName()); + if (JavaSecurityManagers.getSystemProperty(providerKey) == null) { + JavaSecurityManagers.setSystemProperty(providerKey, JaccProvider.Factory.class.getName()); final ClassLoader cl = JaccProvider.Factory.class.getClassLoader(); Thread.currentThread().setContextClassLoader(cl); } @@ -351,7 +352,7 @@ public abstract class AbstractSecurityService implements DestroyableResource, Se // from the equivalent call in JaccPermissionsBuilder can be avoided. PolicyConfigurationFactory.getPolicyConfigurationFactory(); } catch (final Exception e) { - throw new IllegalStateException("Could not install JACC Policy Configuration Factory: " + System.getProperty(providerKey), e); + throw new IllegalStateException("Could not install JACC Policy Configuration Factory: " + JavaSecurityManagers.getSystemProperty(providerKey), e); } finally { Thread.currentThread().setContextClassLoader(contextClassLoader); } http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java index 12bdd79..4f91480 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/SecurityServiceImpl.java @@ -20,6 +20,7 @@ package org.apache.openejb.core.security; import org.apache.openejb.core.security.jaas.UsernamePasswordCallbackHandler; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.util.ConfUtils; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.xbean.finder.archive.FileArchive; import javax.security.auth.Subject; @@ -66,7 +67,7 @@ public class SecurityServiceImpl extends AbstractSecurityService { } final URL loginConfig = ConfUtils.getConfResource("login.config"); - System.setProperty("java.security.auth.login.config", FileArchive.decode(loginConfig.toExternalForm())); + JavaSecurityManagers.setSystemProperty("java.security.auth.login.config", FileArchive.decode(loginConfig.toExternalForm())); } @Override http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java b/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java index 869e669..de13545 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/security/jaas/ScriptLoginModule.java @@ -17,6 +17,7 @@ package org.apache.openejb.core.security.jaas; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.apache.openejb.util.URLs; @@ -104,7 +105,7 @@ public class ScriptLoginModule implements LoginModule { private File getScriptFile(final String path) { if (path == null || "".equals(path)) { - final File result = new File(System.getProperty("openejb.home"), "conf/loginscript.js"); + final File result = new File(JavaSecurityManagers.getSystemProperty("openejb.home"), "conf/loginscript.js"); if (result.exists()) { return result; } else { @@ -130,7 +131,7 @@ public class ScriptLoginModule implements LoginModule { } { - final File openEjbConf = new File(System.getProperty("openejb.home"), "conf"); + final File openEjbConf = new File(JavaSecurityManagers.getSystemProperty("openejb.home"), "conf"); final File result = new File(openEjbConf, path); if (result.exists()) { return result; @@ -144,7 +145,7 @@ public class ScriptLoginModule implements LoginModule { public boolean login() throws LoginException { File script = getScriptFile((String) this.options.get("scriptURI")); if (script == null) { - script = getScriptFile(System.getProperty("openejb.ScriptLoginModule.scriptURI")); + script = getScriptFile(JavaSecurityManagers.getSystemProperty("openejb.ScriptLoginModule.scriptURI")); if (script == null) { script = getScriptFile(null); } http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java index 601fc7c..5058663 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/RAFPassivater.java @@ -19,6 +19,7 @@ package org.apache.openejb.core.stateful; import org.apache.openejb.SystemException; import org.apache.openejb.spi.Serializer; +import org.apache.openejb.util.JavaSecurityManagers; import java.io.File; import java.io.RandomAccessFile; @@ -53,7 +54,8 @@ public class RAFPassivater implements PassivationStrategy { public synchronized void passivate(final Map stateTable) throws SystemException { try(final RandomAccessFile ras = new RandomAccessFile( - System.getProperty("java.io.tmpdir", File.separator + "tmp") + File.separator + "passivation" + fileID + ".ser", "rw")) { + JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp") + + File.separator + "passivation" + fileID + ".ser", "rw")) { fileID++; final Iterator iterator = stateTable.keySet().iterator(); @@ -88,7 +90,8 @@ public class RAFPassivater implements PassivationStrategy { } try (final RandomAccessFile ras = - new RandomAccessFile(System.getProperty("java.io.tmpdir", File.separator + "tmp") + File.separator + "passivation" + pointer.fileid + ".ser", "r")) { + new RandomAccessFile(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp") + + File.separator + "passivation" + pointer.fileid + ".ser", "r")) { final byte[] bytes = new byte[pointer.bytesize]; ras.seek(pointer.filepointer); ras.readFully(bytes); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java index fdc7ebc..e49766f 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/SimplePassivater.java @@ -22,6 +22,7 @@ import org.apache.openejb.core.EnvProps; import org.apache.openejb.core.ivm.EjbObjectInputStream; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; @@ -56,7 +57,7 @@ public class SimplePassivater implements PassivationStrategy { if (dir != null) { sessionDirectory = SystemInstance.get().getBase().getDirectory(dir); } else { - sessionDirectory = new File(System.getProperty("java.io.tmpdir", File.separator + "tmp")); + sessionDirectory = new File(JavaSecurityManagers.getSystemProperty("java.io.tmpdir", File.separator + "tmp")); } if (!sessionDirectory.exists() && !sessionDirectory.mkdirs()) { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java index b467092..9ab14ad 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/ProviderWrapper.java @@ -20,6 +20,7 @@ package org.apache.openejb.core.webservices; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.core.ivm.naming.JaxWsServiceReference; import org.apache.openejb.loader.IO; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.LogCategory; import org.apache.openejb.util.Logger; import org.w3c.dom.Element; @@ -70,13 +71,13 @@ public class ProviderWrapper extends Provider { // Axis JAXWS api is non compliant and checks system property before classloader // so we replace system property so this wrapper is selected. The original value // is saved into an openejb property so we can load the class in the find method - final String oldProperty = System.getProperty(JAXWSPROVIDER_PROPERTY); + final String oldProperty = JavaSecurityManagers.getSystemProperty(JAXWSPROVIDER_PROPERTY); if (oldProperty != null && !oldProperty.equals(ProviderWrapper.class.getName())) { - System.setProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty); - System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); + JavaSecurityManagers.setSystemProperty("openejb." + JAXWSPROVIDER_PROPERTY, oldProperty); + JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); } - System.setProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); + JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, ProviderWrapper.class.getName()); final ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader(); if (oldClassLoader != null) { @@ -360,7 +361,7 @@ public class ProviderWrapper extends Provider { // 0. System.getProperty("openejb.javax.xml.ws.spi.Provider") // This is so those using old axis rules still work as expected - String providerClass = System.getProperty("openejb." + JAXWSPROVIDER_PROPERTY); + String providerClass = JavaSecurityManagers.getSystemProperty("openejb." + JAXWSPROVIDER_PROPERTY); Provider provider = createProviderInstance(providerClass, classLoader); if (provider != null) { return provider; @@ -395,7 +396,7 @@ public class ProviderWrapper extends Provider { } // 2. $java.home/lib/jaxws.properties - final String javaHome = System.getProperty("java.home"); + final String javaHome = JavaSecurityManagers.getSystemProperty("java.home"); final File jaxrpcPropertiesFile = new File(new File(javaHome, "lib"), "jaxrpc.properties"); if (jaxrpcPropertiesFile.exists()) { try { @@ -412,7 +413,7 @@ public class ProviderWrapper extends Provider { } // 3. System.getProperty("javax.xml.ws.spi.Provider") - providerClass = System.getProperty(JAXWSPROVIDER_PROPERTY); + providerClass = JavaSecurityManagers.getSystemProperty(JAXWSPROVIDER_PROPERTY); provider = createProviderInstance(providerClass, classLoader); if (provider != null) { return provider; @@ -421,14 +422,14 @@ public class ProviderWrapper extends Provider { // 4. Use javax.xml.ws.spi.Provider default try { - System.getProperties().remove(JAXWSPROVIDER_PROPERTY); + JavaSecurityManagers.removeSystemProperty(JAXWSPROVIDER_PROPERTY); provider = Provider.provider(); if (provider != null && !provider.getClass().getName().equals(ProviderWrapper.class.getName())) { return provider; } } finally { // restore original jax provider property - System.setProperty(JAXWSPROVIDER_PROPERTY, providerClass); + JavaSecurityManagers.setSystemProperty(JAXWSPROVIDER_PROPERTY, providerClass); } throw new WebServiceException("No " + JAXWSPROVIDER_PROPERTY + " implementation found"); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java index b1a8692..cdb1388 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/webservices/UriResolver.java @@ -20,6 +20,7 @@ package org.apache.openejb.core.webservices; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.loader.IO; import org.apache.openejb.util.Base64; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.URLs; import java.io.File; @@ -112,17 +113,17 @@ public class UriResolver { try { final HttpURLConnection huc = (HttpURLConnection) url.openConnection(); - final String host = System.getProperty("http.proxyHost"); + final String host = JavaSecurityManagers.getSystemProperty("http.proxyHost"); if (host != null) { //comment out unused port to pass pmd check - /*String ports = System.getProperty("http.proxyPort"); + /*String ports = JavaSecurityManagers.getSystemProperty("http.proxyPort"); int port = 80; if (ports != null) { port = Integer.parseInt(ports); }*/ - final String username = System.getProperty("http.proxy.user"); - final String password = System.getProperty("http.proxy.password"); + final String username = JavaSecurityManagers.getSystemProperty("http.proxy.user"); + final String password = JavaSecurityManagers.getSystemProperty("http.proxy.password"); if (username != null && password != null) { final String encoded = new String(Base64.encodeBase64((username + ":" + password).getBytes())); http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java b/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java index 1abb9b3..bc3b76f 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/log/SingleLineFormatter.java @@ -17,13 +17,15 @@ package org.apache.openejb.log; +import org.apache.openejb.util.JavaSecurityManagers; + import java.io.PrintWriter; import java.io.StringWriter; import java.util.logging.Formatter; import java.util.logging.LogRecord; public class SingleLineFormatter extends Formatter { - private static final String SEP = System.getProperty("line.separator", "\n"); + private static final String SEP = JavaSecurityManagers.getSystemProperty("line.separator", "\n"); @Override public synchronized String format(final LogRecord record) { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java b/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java index 9b61623..c074b5a 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/persistence/PersistenceBootstrap.java @@ -22,6 +22,7 @@ import org.apache.openejb.core.TempClassLoader; import org.apache.openejb.javaagent.Agent; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.Saxs; import org.apache.xbean.finder.ClassLoaders; import org.apache.xbean.finder.UrlSet; @@ -264,7 +265,7 @@ public class PersistenceBootstrap { if (SystemInstance.isInitialized()) { return SystemInstance.get().getOptions().get(property, (String) null); } - return System.getProperty(property); + return JavaSecurityManagers.getSystemProperty(property); } private static void debug(final String x) { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java index 6255394..38a5097 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicDataSource.java @@ -27,6 +27,7 @@ import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.resource.jdbc.BasicDataSourceUtil; import org.apache.openejb.resource.jdbc.IsolationLevels; import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.reflection.Reflections; import javax.management.MBeanServer; @@ -205,7 +206,7 @@ public class BasicDataSource extends org.apache.commons.dbcp2.BasicDataSource im } } else { // wrap super call with code that sets user.dir to openejb.base and then resets it - final Properties systemProperties = System.getProperties(); + final Properties systemProperties = JavaSecurityManagers.getSystemProperties(); final String userDir = systemProperties.getProperty("user.dir"); try { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java index 67c06fb..c3d92e5 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/dbcp/BasicManagedDataSource.java @@ -31,6 +31,7 @@ import org.apache.openejb.resource.jdbc.BasicDataSourceUtil; import org.apache.openejb.resource.jdbc.IsolationLevels; import org.apache.openejb.resource.jdbc.plugin.DataSourcePlugin; import org.apache.openejb.resource.jdbc.pool.XADataSourceResource; +import org.apache.openejb.util.JavaSecurityManagers; import org.apache.openejb.util.reflection.Reflections; import javax.management.MBeanServer; @@ -321,7 +322,7 @@ public class BasicManagedDataSource extends org.apache.commons.dbcp2.managed.Bas } } else { // wrap super call with code that sets user.dir to openejb.base and then resets it - final Properties systemProperties = System.getProperties(); + final Properties systemProperties = JavaSecurityManagers.getSystemProperties(); final String userDir = systemProperties.getProperty("user.dir"); try { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java index e99da49..6f779e1 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/plugin/DerbyDataSourcePlugin.java @@ -18,12 +18,13 @@ package org.apache.openejb.resource.jdbc.plugin; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.util.JavaSecurityManagers; public class DerbyDataSourcePlugin extends AbstractDataSourcePlugin { @Override public String updatedUrl(final String dataSourceUrl) { - System.setProperty("derby.system.home" + JavaSecurityManagers.setSystemProperty("derby.system.home" , SystemInstance.get().getProperty("derby.system.home", SystemInstance.get().getBase().getDirectory().getAbsolutePath())); return dataSourceUrl; } http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java b/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java index df16c18..a5d1086 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/resource/quartz/QuartzResourceAdapter.java @@ -18,8 +18,6 @@ package org.apache.openejb.resource.quartz; import org.apache.openejb.loader.SystemInstance; -import org.apache.openejb.util.LogCategory; -import org.apache.openejb.util.Logger; import org.apache.openejb.quartz.Job; import org.apache.openejb.quartz.JobDataMap; import org.apache.openejb.quartz.JobExecutionContext; @@ -28,6 +26,9 @@ import org.apache.openejb.quartz.Scheduler; import org.apache.openejb.quartz.SchedulerException; import org.apache.openejb.quartz.impl.StdSchedulerFactory; import org.apache.openejb.quartz.listeners.SchedulerListenerSupport; +import org.apache.openejb.util.JavaSecurityManagers; +import org.apache.openejb.util.LogCategory; +import org.apache.openejb.util.Logger; import javax.resource.ResourceException; import javax.resource.spi.ActivationSpec; @@ -75,16 +76,16 @@ public class QuartzResourceAdapter implements ResourceAdapter { } //Allow org.apache.openejb.quartz.InterruptableJob implementors to be interrupted on shutdown - System.setProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN - , System.getProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN, "true")); - System.setProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT - , System.getProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT, "true")); + JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN + , JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN, "true")); + JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT + , JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_INTERRUPT_JOBS_ON_SHUTDOWN_WITH_WAIT, "true")); //Let the user enable this if they really want it - System.setProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK - , System.getProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK, "true")); - System.setProperty("org.terracotta.quartz.skipUpdateCheck" - , System.getProperty("org.terracotta.quartz.skipUpdateCheck", "true")); + JavaSecurityManagers.setSystemProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK + , JavaSecurityManagers.getSystemProperty(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK, "true")); + JavaSecurityManagers.setSystemProperty("org.terracotta.quartz.skipUpdateCheck" + , JavaSecurityManagers.getSystemProperty("org.terracotta.quartz.skipUpdateCheck", "true")); startThread.set(new Thread("Quartz Scheduler Start") { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java b/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java index 95a0717..fb3711e 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/ri/sp/PseudoPolicyConfigurationFactory.java @@ -17,6 +17,8 @@ package org.apache.openejb.ri.sp; +import org.apache.openejb.util.JavaSecurityManagers; + import javax.security.jacc.PolicyConfiguration; import javax.security.jacc.PolicyConfigurationFactory; import javax.security.jacc.PolicyContextException; @@ -29,7 +31,7 @@ import java.security.PermissionCollection; public class PseudoPolicyConfigurationFactory extends PolicyConfigurationFactory { public static void install() { - System.setProperty("javax.security.jacc.PolicyConfigurationFactory.provider", PseudoPolicyConfigurationFactory.class.getName()); + JavaSecurityManagers.setSystemProperty("javax.security.jacc.PolicyConfigurationFactory.provider", PseudoPolicyConfigurationFactory.class.getName()); } public PolicyConfiguration getPolicyConfiguration(final String contextID, final boolean remove) throws PolicyContextException { http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java b/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java index 781bd1a..1178032 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/table/Line.java @@ -17,6 +17,8 @@ package org.apache.openejb.table; +import org.apache.openejb.util.JavaSecurityManagers; + import java.io.PrintStream; public class Line { @@ -26,7 +28,7 @@ public class Line { public static final char EMPTY_CHAR = ' '; private final String[] columns; - private String cr = System.getProperty("line.separator"); + private String cr = JavaSecurityManagers.getSystemProperty("line.separator"); public Line(final String... columns) { this.columns = columns; http://git-wip-us.apache.org/repos/asf/tomee/blob/7cf6e4fe/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java b/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java index 2fb73b3..2c04f85 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/table/Lines.java @@ -17,6 +17,8 @@ package org.apache.openejb.table; +import org.apache.openejb.util.JavaSecurityManagers; + import java.io.PrintStream; import java.util.ArrayList; import java.util.Iterator; @@ -27,7 +29,7 @@ public class Lines { private final String cr; public Lines() { - this(System.getProperty("line.separator")); + this(JavaSecurityManagers.getSystemProperty("line.separator")); } public Lines(final String cr) {
