Sagara Gunathunga  created CXF-6492:
---------------------------------------

             Summary: AbstractHTTPDestination class incorrectly assume only one 
empty space after "Basic" in Authorization header value. 
                 Key: CXF-6492
                 URL: https://issues.apache.org/jira/browse/CXF-6492
             Project: CXF
          Issue Type: Bug
          Components: JAX-RS
    Affects Versions: 3.1.1, 2.7.16
            Reporter: Sagara Gunathunga 


getAuthorizationPolicyFromMessage() method in AbstractHTTPDestination class  
incorrectly assume only one empty space after "Basic" in Authorization header 
value but one can send multiple empty spaces after "Basic" string or can skip 
the content after "Basic" string in both cases CXF returns Java exceptions 
along with stack trace to the client side. 

case -1  : curl http://localhost:8080/hello/echo/hello -H "Authorization:Basic  
YWRtaW46YWRtaW4="   ( 2 whitespace characters after "Basic" )

java.lang.NullPointerException
        at java.lang.String.<init>(String.java:556)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.getAuthorizationPolicyFromMessage(AbstractHTTPDestination.java:167)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(AbstractHTTPDestination.java:385)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:236)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:217)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)

case - 2 : curl http://localhost:8080/hello/echo/hello -H "Authorization:Basic" 
( No content after "Basic") 
 
Server Error</pre></p><h3>Caused 
by:</h3><pre>java.lang.ArrayIndexOutOfBoundsException: 1
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.getAuthorizationPolicyFromMessage(AbstractHTTPDestination.java:165)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.setupMessage(AbstractHTTPDestination.java:385)
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:236)
        at 
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:234)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:208)
        at 
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:160)
        at 
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:293)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doGet(AbstractHTTPServlet.java:217)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to