You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by am...@apache.org on 2017/07/18 22:02:59 UTC

cxf git commit: [7447] Add doPrivs to avoid AccessControlExceptions

Repository: cxf
Updated Branches:
  refs/heads/master 4da186672 -> 8c7b7bb3a


[7447] Add doPrivs to avoid AccessControlExceptions


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/8c7b7bb3
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/8c7b7bb3
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/8c7b7bb3

Branch: refs/heads/master
Commit: 8c7b7bb3a6b86632d73da57b6567dd9bb4157f31
Parents: 4da1866
Author: Andy McCright <j....@gmail.com>
Authored: Mon Jul 17 15:10:19 2017 -0500
Committer: Andy McCright <j....@gmail.com>
Committed: Tue Jul 18 17:01:33 2017 -0500

----------------------------------------------------------------------
 .../org/apache/cxf/jaxrs/provider/ProviderCache.java |  9 ++++++++-
 .../cxf/transport/http/URLConnectionHTTPConduit.java | 15 ++++++++++++++-
 2 files changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/8c7b7bb3/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java
----------------------------------------------------------------------
diff --git a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java
index 32f0173..72e16f6 100644
--- a/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java
+++ b/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/provider/ProviderCache.java
@@ -19,6 +19,8 @@
 
 package org.apache.cxf.jaxrs.provider;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -32,7 +34,12 @@ import org.apache.cxf.jaxrs.model.ProviderInfo;
 
 public class ProviderCache {
     private static final int MAX_PROVIDER_CACHE_SIZE =
-        Integer.getInteger("org.apache.cxf.jaxrs.max_provider_cache_size", 100);
+        AccessController.doPrivileged(new PrivilegedAction<Integer>() {
+            @Override
+            public Integer run() {
+                return Integer.getInteger("org.apache.cxf.jaxrs.max_provider_cache_size", 100);
+            } }).intValue();
+
     private final Map<String, List<ProviderInfo<MessageBodyReader<?>>>>
         readerProviderCache = new ConcurrentHashMap<String, List<ProviderInfo<MessageBodyReader<?>>>>();
 

http://git-wip-us.apache.org/repos/asf/cxf/blob/8c7b7bb3/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
----------------------------------------------------------------------
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
index 0ed4b71..6941352 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
@@ -367,7 +367,20 @@ public class URLConnectionHTTPConduit extends HTTPConduit {
             }
         }
         protected int getResponseCode() throws IOException {
-            return connection.getResponseCode();
+            try {
+                return AccessController.doPrivileged(new PrivilegedExceptionAction<Integer>() {
+
+                    @Override
+                    public Integer run() throws IOException {
+                        return connection.getResponseCode();
+                    } });
+            } catch (PrivilegedActionException e) {
+                Throwable t = e.getCause();
+                if (t instanceof IOException) {
+                    throw (IOException) t;
+                }
+                throw new RuntimeException(t);
+            }
         }
         protected String getResponseMessage() throws IOException {
             return connection.getResponseMessage();