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();