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

Branch: refs/heads/3.0.x-fixes
Commit: a511c502c3068184f17dbbe4fed4707a90a62b1a
Parents: 12b364c
Author: Andy McCright <[email protected]>
Authored: Mon Jul 17 15:10:19 2017 -0500
Committer: Daniel Kulp <[email protected]>
Committed: Fri Jul 28 12:20:15 2017 -0400

----------------------------------------------------------------------
 .../cxf/transport/http/URLConnectionHTTPConduit.java | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/a511c502/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 9970d85..457257f 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
@@ -350,7 +350,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();

Reply via email to