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 of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
