You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2023/09/22 01:45:02 UTC
[cxf] 03/06: [CXF-8933]:Add doPrivileged block to ProxyFactoryProxySelector.select()in HttpClientHTTPConduit
This is an automated email from the ASF dual-hosted git repository.
reta pushed a commit to branch 3.6.x-fixes
in repository https://gitbox.apache.org/repos/asf/cxf.git
commit f854e9db5d8d22939e38f48b21bae74d86487279
Author: Jim Ma <em...@apache.org>
AuthorDate: Thu Sep 21 14:27:47 2023 +0800
[CXF-8933]:Add doPrivileged block to ProxyFactoryProxySelector.select()in HttpClientHTTPConduit
(cherry picked from commit a690fd59df8fc88f2f1ef1405d5533216d68070a)
---
.../cxf/transport/http/HttpClientHTTPConduit.java | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
index 4cab8ae253..d99309b3ca 100644
--- a/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
+++ b/rt/transports/http/src/main/java/org/apache/cxf/transport/http/HttpClientHTTPConduit.java
@@ -46,8 +46,11 @@ import java.net.http.HttpResponse.BodyHandlers;
import java.net.http.HttpTimeoutException;
import java.nio.ByteBuffer;
import java.nio.channels.UnresolvedAddressException;
+import java.security.AccessController;
import java.security.GeneralSecurityException;
import java.security.Principal;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.security.cert.Certificate;
import java.time.Duration;
import java.util.Arrays;
@@ -327,7 +330,22 @@ public class HttpClientHTTPConduit extends URLConnectionHTTPConduit {
if (proxy != null) {
return Arrays.asList(proxy);
}
- return ProxySelector.getDefault().select(uri);
+ List<Proxy> listProxy;
+ if (System.getSecurityManager() != null) {
+ try {
+ listProxy = AccessController.doPrivileged(new PrivilegedExceptionAction<List<Proxy>>() {
+ @Override
+ public List<Proxy> run() throws IOException {
+ return ProxySelector.getDefault().select(uri);
+ }
+ });
+ } catch (PrivilegedActionException e) {
+ throw new RuntimeException(e);
+ }
+ } else {
+ listProxy = ProxySelector.getDefault().select(uri);
+ }
+ return listProxy;
}
@Override