[ 
https://issues.apache.org/jira/browse/MJAVADOC-641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17055349#comment-17055349
 ] 

Michael Osipov commented on MJAVADOC-641:
-----------------------------------------

You can set it in {{HttpURLConnection}} via code only, not via properties.

I can't help myself, see:

{noformat}
[mosipov@mika-ion 
/usr/ports/java/openjdk11/work/openjdk-jdk11u-jdk-11.0.6-10-1]$ grep -r  
'\.proxy' --include='**/*.java' src --color
src/java.base/share/classes/java/lang/reflect/Proxy.java:            
GetPropertyAction.privilegedGetProperty("jdk.proxy.debug", "");
src/java.base/share/classes/java/lang/reflect/Proxy.java:         * a 
non-exported package named com.sun.proxy.$MODULE.
src/java.base/share/classes/java/lang/reflect/Proxy.java:                String 
mn = "jdk.proxy" + counter.incrementAndGet();
src/java.base/share/classes/java/lang/reflect/ProxyGenerator.java:              
  "jdk.proxy.ProxyGenerator.saveGeneratedFiles")).booleanValue();
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java: * Supports 
http/https/ftp.proxyHost, http/https/ftp.proxyPort,
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java:     * 
{"ftp", "ftp.proxy", "ftpProxy", "proxy", "socksProxy"},
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java:     *        
  + ftp.proxyHost & ftp.proxyPort
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java:        
{"http", "http.proxy", "proxy", "socksProxy"},
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java:        
{"https", "https.proxy", "proxy", "socksProxy"},
src/java.base/share/classes/sun/net/spi/DefaultProxySelector.java:        
{"ftp", "ftp.proxy", "ftpProxy", "proxy", "socksProxy"},
src/java.base/share/classes/sun/net/www/http/HttpClient.java:                
boolean compatible = Objects.equals(ret.proxy, p)
src/java.base/share/classes/sun/net/www/http/HttpClient.java:                if 
(ret.proxy == Proxy.NO_PROXY || ret.proxy == null) {
src/java.base/share/classes/sun/net/www/protocol/http/Handler.java:        
this.proxy = proxy;
src/java.base/share/classes/sun/net/www/protocol/http/Handler.java:        
this.proxyPort = port;
src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java:   
     p = getNetProperty("jdk.http.auth.proxying.disabledSchemes");
src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java:   
                         ret = NTLMAuthenticationProxy.proxy.create(true, host,
src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java:   
                         ret = NTLMAuthenticationProxy.proxy.create(false,
src/java.base/share/classes/sun/net/www/protocol/http/HttpURLConnection.java:   
          * _should_ denote a URL - let's hope for "http://my.proxy.org";
src/java.base/share/classes/sun/net/www/protocol/https/Handler.java:        
this.proxy = proxy;
src/java.base/share/classes/sun/net/www/protocol/https/Handler.java:        
this.proxyPort = port;
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java: *      
<LI><em>https.proxyHost</em> ... the host supporting SSL
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java: *      
<LI><em>https.proxyPort</em> ... port to use on proxyHost
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:    // 
HttpClient.proxyDisabled will always be false, because we don't
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:        
this.proxy = proxy;
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:        
this.proxyDisabled = true;
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:        
        boolean compatible = ((ret.proxy != null && ret.proxy.equals(p)) ||
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:        
            (ret.proxy == null && p == Proxy.NO_PROXY))
src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java:        
        if (ret.proxy == Proxy.NO_PROXY || ret.proxy == null) {
src/java.base/share/classes/sun/reflect/misc/ReflectUtil.java:    public static 
final String PROXY_PACKAGE = "com.sun.proxy";
src/java.desktop/macosx/classes/com/apple/laf/AquaKeyBindings.java:            
this.proxyActionName = proxyActionName;
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(AWTEvent.FOCUS_EVENT_MASK);
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(AWTEvent.KEY_EVENT_MASK);
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(AWTEvent.MOUSE_EVENT_MASK);
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(AWTEvent.MOUSE_WHEEL_EVENT_MASK);
src/java.desktop/share/classes/java/awt/Component.java:            
parent.proxyEnableEvents(eventMask);
src/java.desktop/share/classes/java/awt/Component.java:                        
parent.proxyEnableEvents(mask);
src/java.desktop/share/classes/java/awt/Container.java:                
parent.proxyEnableEvents(events);
src/java.desktop/unix/classes/sun/awt/X11/XDropTargetProtocol.java:            
this.proxy = proxy;
src/java.desktop/unix/classes/sun/awt/X11/XEmbedChildProxyPeer.java:        
this.proxy = proxy;
src/java.net.http/share/classes/java/net/http/HttpClient.java: *        
.proxy(ProxySelector.of(new InetSocketAddress("proxy.example.com", 80)))
src/java.net.http/share/classes/java/net/http/HttpClient.java:     *           
.proxy(ProxySelector.of(addr))
src/java.net.http/share/classes/jdk/internal/net/http/AsyncSSLTunnelConnection.java:
        return ConnectionPool.cacheKey(address, plainConnection.proxyAddr);
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
        if (proxy && (proxyAddress = req.proxy()) != null) {
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            proxyAddress = req.proxy();
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
        InetSocketAddress proxy = r.proxy();
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
        if (exchange.proxyauth == null) {
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
                    exchange.proxyauth = new AuthInfo(true, ca.scheme, null, 
ca);
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            } else if (r.proxy() != null) {
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            if (exchange.proxyauth != null && !exchange.proxyauth.fromcache) {
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
                AuthInfo au = exchange.proxyauth;
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            } else if (req.proxy() != null) {
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
        AuthInfo au = proxy ? exchange.proxyauth : exchange.serverauth;
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
                exchange.proxyauth = au;
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
                exchange.proxyauth = au;
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            this.proxy = proxy;
src/java.net.http/share/classes/jdk/internal/net/http/AuthenticationFilter.java:
            if (this.proxy != proxy) {
src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java:      
      this.proxy = proxy;
src/java.net.http/share/classes/jdk/internal/net/http/ConnectionPool.java:      
      if (!Objects.equals(this.proxy, other.proxy)) {
src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java:            
          request, request.proxy());
src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java:            
Response proxyResponse = ((ProxyAuthenticationRequired)t).proxyResponse;
src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java:        
ProxySelector ps = client.proxySelector();
src/java.net.http/share/classes/jdk/internal/net/http/Exchange.java:            
    URLPermission proxyPerm = permissionForProxy(request.proxy());
src/java.net.http/share/classes/jdk/internal/net/http/Stream.java:            
return Utils.proxyHasDisabledSchemes(filter == Utils.PROXY_TUNNEL_FILTER)
src/java.net.http/share/classes/jdk/internal/net/http/Http1Request.java:        
if ((request.proxy() == null && !method.equals("CONNECT"))
src/java.net.http/share/classes/jdk/internal/net/http/Http2ClientImpl.java:     
   InetSocketAddress proxy = req.proxy();
src/java.net.http/share/classes/jdk/internal/net/http/Http2Connection.java:     
        keyFor(request.uri(), request.proxy()));
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientBuilderImpl.java:
        this.proxy = proxy;
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientFacade.java:    
    return impl.proxy();
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java:      
  this.userProxySelector = builder.proxy;
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java:      
  this.proxySelector = Optional.ofNullable(userProxySelector)
src/java.net.http/share/classes/jdk/internal/net/http/HttpClientImpl.java:      
                this.proxySelector, userProxySelector != null);
src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java:      
  InetSocketAddress proxy = Utils.resolveAddress(request.proxy());
src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java:      
      assert request.proxy() == null;
src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java:      
  } else if (request.proxy() != null) {
src/java.net.http/share/classes/jdk/internal/net/http/HttpConnection.java:      
      // assert request.proxy() == null && !request.isConnect();
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
   this.proxy = null;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
       this.proxy = ((HttpRequestImpl) request).proxy;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
           this.proxy = retrieveProxy(ps, uri);
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
           this.proxy = null;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
   this.proxy = other.proxy;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
   this.proxy = null;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
   this.proxy = null;
src/java.net.http/share/classes/jdk/internal/net/http/HttpRequestImpl.java:     
   this.proxy = proxy;
src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java:       
 if (vers == HttpClient.Version.HTTP_2 && !request.secure() && request.proxy() 
!= null)
src/java.net.http/share/classes/jdk/internal/net/http/PlainTunnelingConnection.java:
        this.proxyAddr = proxy;
src/java.net.http/share/classes/jdk/internal/net/http/PlainTunnelingConnection.java:
        this.proxyHeaders = proxyHeaders;
src/java.net.http/share/classes/jdk/internal/net/http/ProxyAuthenticationRequired.java:
        this.proxyResponse = proxyResponse;
src/java.net.http/share/classes/jdk/internal/net/http/common/Utils.java:        
        getNetProperty("jdk.http.auth.proxying.disabledSchemes");
src/java.net.http/share/classes/jdk/internal/net/http/websocket/BuilderImpl.java:
        this.proxySelector = proxySelector;
src/java.net.http/share/classes/jdk/internal/net/http/websocket/BuilderImpl.java:
        assert !client.proxy().isPresent()
src/java.net.http/share/classes/jdk/internal/net/http/websocket/BuilderImpl.java:
                || client.proxy().equals(proxySelector);
src/java.security.jgss/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java:
        return t.proxy;
src/java.security.jgss/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java:
        t.proxy = p;
src/java.security.jgss/share/classes/javax/security/auth/kerberos/KerberosTicket.java:
        if (!Objects.equals(proxy, otherTicket.proxy)) {
src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5InitCredential.java:
        result.proxyTicket = 
KerberosSecrets.getJavaxSecurityAuthKerberosAccess().
src/java.security.jgss/share/classes/sun/security/jgss/krb5/Krb5ProxyCredential.java:
            KerberosTicket proxy = initiator.proxyTicket;
src/java.security.jgss/share/classes/sun/security/krb5/Credentials.java:        
this.proxy = proxy;
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
 * resourceResolver.setProperty("http.proxy.host", "proxy.company.com");
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
 * resourceResolver.setProperty("http.proxy.port", "8080");
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
 * resourceResolver.setProperty("http.proxy.username", "proxyuser3");
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
 * resourceResolver.setProperty("http.proxy.password", "secretca");
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
                                                 "http.proxy.host", 
"http.proxy.port",
src/java.xml.crypto/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java:
                                                 "http.proxy.username", 
"http.proxy.password",
src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java:        
    this.proxyOn = c;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/EntryProxyNode.java:
        this.proxyPoint = proxyPoint;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GraphDecoder.java:
            this.proxyPoint = proxyPoint;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/GraphDecoder.java:
                GraalError.guarantee(value instanceof ProxyPlaceholder && 
((ProxyPlaceholder) value).proxyPoint == loopExplosionMerge,
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopExitNode.java:
                return proxyNode.proxyPoint() != this;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/LoopExitNode.java:
                return proxyNode.proxyPoint() == this;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/ValueProxyNode.java:
        return this.proxyPoint();
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/GraphUtil.java:
        AbstractBeginNode proxyPoint = vpn.proxyPoint();
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/util/GraphUtil.java:
                    length = new ValueProxyNode(length, proxy.proxyPoint());
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/SchedulePhase.java:
                    otherBlock = currentNodeMap.get(proxyNode.proxyPoint());
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/schedule/SchedulePhase.java:
                nodeToBlock.set(proxyNode, 
nodeToBlock.get(proxyNode.proxyPoint()));
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.phases/src/org/graalvm/compiler/phases/util/GraphOrder.java:
                                            if (input != proxy.proxyPoint()) {
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.virtual/src/org/graalvm/compiler/virtual/phases/ea/PEReadEliminationClosure.java:
                    if (!(value instanceof ProxyNode) || ((ProxyNode) 
value).proxyPoint() != exitNode) {
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java:           
             "\n  -J-Dhttp.proxyHost=<hostname>" +
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java:           
             "\n  -J-Dhttp.proxyPort=<portnumber>\n" +
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java:           
             "\n  -J-Dhttps.proxyHost=<hostname> " +
src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Main.java:           
             "\n  -J-Dhttps.proxyPort=<portnumber> ";
src/jdk.jconsole/share/classes/sun/tools/jconsole/VMPanel.java:        
this.proxyClient = proxyClient;
{noformat}

and for C

{noformat}
[mosipov@mika-ion 
/usr/ports/java/openjdk11/work/openjdk-jdk11u-jdk-11.0.6-10-1]$ grep -r  
'\.proxy' --include='**/*.c' src --color
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"http.proxyHost", sprops->httpHost);
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"http.proxyPort", sprops->httpPort);
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"https.proxyHost", sprops->httpsHost);
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"https.proxyPort", sprops->httpsPort);
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"ftp.proxyHost", sprops->ftpHost);
src/java.base/share/native/libjava/System.c:        PUTPROP(props, 
"ftp.proxyPort", sprops->ftpPort);
{noformat}

Same applies for OpenJDK 8.

Please show me the codespot where these properties are read and go in effect.

> 3.1.1 does not handle proxy username or proxy password
> ------------------------------------------------------
>
>                 Key: MJAVADOC-641
>                 URL: https://issues.apache.org/jira/browse/MJAVADOC-641
>             Project: Maven Javadoc Plugin
>          Issue Type: Bug
>          Components: jar
>    Affects Versions: 3.1.1
>            Reporter: Thomas Cunningham
>            Priority: Major
>             Fix For: wontfix-candidate
>
>
> I'm seeing the following trying to build camel behind a firewall : 
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-javadoc-plugin:3.1.1:jar (attach-javadocs) on 
> project camel-util: MavenReportException: Error while generating Javadoc: 
> [ERROR] Exit code: 1 - javadoc: error - Error fetching URL: 
> https://download.oracle.com/javase/7/docs/api/
> [ERROR] javadoc: error - Error fetching URL: 
> [https://download.oracle.com/javaee/7/api/]
>  
> This is a new issue for us, and maven-javadoc-plugin 3.0.1 seems to work fine 
> while 3.1.1 gives this error.
>  
> I dug in a little and I think the issue is that in 3.0.1 handles proxy 
> username and password :
> [https://github.com/apache/maven-javadoc-plugin/blob/maven-javadoc-plugin-3.0.1/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java#L3606-L3614]
>  
> As far as I can see (and I might be missing something here), 3.1.1 does not : 
> [https://github.com/apache/maven-javadoc-plugin/blob/maven-javadoc-plugin-3.1.1/src/main/java/org/apache/maven/plugins/javadoc/AbstractJavadocMojo.java#L3674-L3690]
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to