diff --git a/implementation/src/main/java/io/smallrye/config/SysPropConfigSource.java b/implementation/src/main/java/io/smallrye/config/SysPropConfigSource.java
index cf41a1902..f50c60273 100644
--- a/implementation/src/main/java/io/smallrye/config/SysPropConfigSource.java
+++ b/implementation/src/main/java/io/smallrye/config/SysPropConfigSource.java
@@ -15,6 +15,7 @@
*/
package io.smallrye.config;
+import static io.smallrye.config.common.utils.ConfigSourceUtil.CONFIG_ORDINAL_KEY;
import static io.smallrye.config.common.utils.ConfigSourceUtil.propertiesToMap;
import static java.security.AccessController.doPrivileged;
import static java.util.Collections.unmodifiableMap;
@@ -25,7 +26,6 @@
import java.util.Set;
import io.smallrye.config.common.AbstractConfigSource;
-import io.smallrye.config.common.utils.ConfigSourceUtil;
/**
* @author Jeff Mesnil (c) 2017 Red Hat inc.
@@ -37,21 +37,51 @@ public class SysPropConfigSource extends AbstractConfigSource {
public static final int ORDINAL = 400;
public SysPropConfigSource() {
- super(NAME, ConfigSourceUtil.getOrdinalFromMap(getSystemProperties(), ORDINAL));
+ super(NAME, getSystemOrdinal());
}
@Override
public Map getProperties() {
- return getSystemProperties();
+ if (System.getSecurityManager() == null) {
+ return unmodifiableMap(propertiesToMap(System.getProperties()));
+ } else {
+ return doPrivileged(new PrivilegedAction