Management console REST connector unexpected behaviour
Issue
When accessing management console REST API from Ruby's REST client, it failed after upgrading to EAP 6.4 CP10 (6.4.10) or later:
/usr/lib/ruby/gems/1.8/gems/rest-client-1.6.9/lib/restclient/request.rb:216:in `transmit': Server broke connection (RestClient::ServerBrokeConnection)
from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.9/lib/restclient/request.rb:68:in `execute'
from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.9/lib/restclient/request.rb:35:in `execute'
from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.9/lib/restclient/resource.rb:71:in `post'
from ./queryversion.rb:35:in `_call'
from ./queryversion.rb:31:in `_operation'
from ./queryversion.rb:23:in `read_attribute'
from ./queryversion.rb:46
And enabling TRACE level logging for com.sun.net.httpserver
shows the following NullPointerException in server.log:
FINER [com.sun.net.httpserver] (HttpManagementService-threads - 1) ServerImpl.Exchange (2): java.lang.NullPointerException
at java.util.regex.Matcher.getTextLength(Matcher.java:1283) [rt.jar:1.8.0_121]
at java.util.regex.Matcher.reset(Matcher.java:309) [rt.jar:1.8.0_121]
at java.util.regex.Matcher.<init>(Matcher.java:229) [rt.jar:1.8.0_121]
at java.util.regex.Pattern.matcher(Pattern.java:1093) [rt.jar:1.8.0_121]
at org.jboss.com.sun.net.httpserver.BasicAuthenticator.authenticate(BasicAuthenticator.java:103)
at org.jboss.as.domain.http.server.security.BasicAuthenticator._authenticate(BasicAuthenticator.java:108) [jboss-as-domain-http-interface-7.5.12.Final-redhat-1.jar:7.5.12.Final-redhat-1]
at org.jboss.as.domain.http.server.security.BasicAuthenticator.authenticate(BasicAuthenticator.java:85) [jboss-as-domain-http-interface-7.5.12.Final-redhat-1.jar:7.5.12.Final-redhat-1]
at org.jboss.sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:64)
at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)
at org.jboss.sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:710)
at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:78)
at org.jboss.as.domain.http.server.XFrameHeaderFilter.doFilter(XFrameHeaderFilter.java:45) [jboss-as-domain-http-interface-7.5.12.Final-redhat-1.jar:7.5.12.Final-redhat-1]
at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)
at org.jboss.as.domain.http.server.RealmReadinessFilter.doFilter(RealmReadinessFilter.java:48) [jboss-as-domain-http-interface-7.5.12.Final-redhat-1.jar:7.5.12.Final-redhat-1]
at org.jboss.as.domain.http.server.DmrFailureReadinessFilter.doFilter(DmrFailureReadinessFilter.java:45) [jboss-as-domain-http-interface-7.5.12.Final-redhat-1.jar:7.5.12.Final-redhat-1]
at org.jboss.com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:81)
at org.jboss.sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:682)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]
at org.jboss.threads.JBossThread.run(JBossThread.java:122) [jboss-threads-2.1.2.Final-redhat-1.jar:2.1.2.Final-redhat-1]
Note:
- The issue does not happens when accessing with curl command or web browser.
- The issue does not happens with default digest authentication but it happens after changing manegement auth to ldap-auth, JAAS-auth or custom plug-in.
Environment
- Red Hat JBoss Enterprise Application Platform (EAP) 6.4.10 or later
- Ruby
- 1.6.9
- REST
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.