Uploaded image for project: 'JBoss Enterprise Application Platform'
  1. JBoss Enterprise Application Platform
  2. JBEAP-7877

Warning when IPv6 address in not correctly encolsed

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Done
    • Minor
    • 7.1.0.ER2
    • 7.1.0.DR9, 7.1.0.DR18
    • Undertow, User Experience
    • None

    Description

      According to RFC2732 , section 2. Literal IPv6 Address Format in URL's Syntax and HTTP header field definition specification, correct host name and request URL should be enclosed like following one: http://[fe80::56ee:75ff:fe47:c83e].

      In case the Undertow is configured as a static loadbalancer using reverse proxy and client creates request with incorrectly enclosed host name (i.e request for http://fe80::56ee:75ff:fe47:c83e) parsing of address fails with following exception the log.

      10:36:20,823 ERROR [org.xnio.listener] (default I/O-4) XNIO001007: A channel event listener threw an exception: java.lang.NumberFormatException: For input string: ":56ee:75ff:fe47:c83e"
      	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
      	at java.lang.Integer.parseInt(Integer.java:580)
      	at java.lang.Integer.parseInt(Integer.java:615)
      	at io.undertow.server.HttpServerExchange.getHostPort(HttpServerExchange.java:658)
      	at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:489)
      	at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35)
      	at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:794)
      	at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:293)
      	at io.undertow.server.handlers.proxy.ProxyHandler$ProxyClientHandler.completed(ProxyHandler.java:267)
      	at io.undertow.server.handlers.proxy.LoadBalancingProxyClient$2.completed(LoadBalancingProxyClient.java:281)
      	at io.undertow.server.handlers.proxy.LoadBalancingProxyClient$2.completed(LoadBalancingProxyClient.java:259)
      	at io.undertow.server.handlers.proxy.ProxyConnectionPool.connectionReady(ProxyConnectionPool.java:330)
      	at io.undertow.server.handlers.proxy.ProxyConnectionPool.access$900(ProxyConnectionPool.java:58)
      	at io.undertow.server.handlers.proxy.ProxyConnectionPool$1.completed(ProxyConnectionPool.java:278)
      	at io.undertow.server.handlers.proxy.ProxyConnectionPool$1.completed(ProxyConnectionPool.java:265)
      	at io.undertow.client.http.HttpClientProvider.handleConnected(HttpClientProvider.java:156)
      	at io.undertow.client.http.HttpClientProvider.access$000(HttpClientProvider.java:51)
      	at io.undertow.client.http.HttpClientProvider$2.handleEvent(HttpClientProvider.java:127)
      	at io.undertow.client.http.HttpClientProvider$2.handleEvent(HttpClientProvider.java:124)
      	at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
      	at org.xnio.nio.WorkerThread$ConnectHandle.handleReady(WorkerThread.java:326)
      	at org.xnio.nio.WorkerThread.run(WorkerThread.java:567)
      
      

      This happens because enclosed host name is expected.
      Correct format of IPv6 address should be checked and more informative exception should be thrown.

      Attachments

        1. balancer.xml
          28 kB
        2. workerA.xml
          35 kB
        3. workerB.xml
          35 kB

        Issue Links

          Activity

            People

              rpelisse@redhat.com Romain Pelisse
              mstyk_jira Martin Styk (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: