Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes d1a1cc523 -> 9bbf7417e


[CXF-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/e70b0043
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/e70b0043
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/e70b0043

Branch: refs/heads/3.1.x-fixes
Commit: e70b0043c8ca2ef9edb00a5af682ec3604c82bb8
Parents: d1a1cc5
Author: Andy McCright <j.andrew.mccri...@gmail.com>
Authored: Mon Jul 17 15:10:19 2017 -0500
Committer: Daniel Kulp <dk...@apache.org>
Committed: Fri Jul 28 12:08:34 2017 -0400

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


http://git-wip-us.apache.org/repos/asf/cxf/blob/e70b0043/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 15fdd03..6d66b89 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;
@@ -33,6 +35,13 @@ 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);
+    private static final int MAX_PROVIDER_CACHE_SIZE =
+        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/e70b0043/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 450ee9c..cf44c39 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
@@ -371,7 +371,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 {
             Object o = 
this.outMessage.getContextualProperty(SET_REASON_PHRASE_NOT_NULL);

Reply via email to