title: How to get WSDL operation name from SoapMessage in CXF Request Interceptor
body: <p>Im trying to get wsdl operation name (SOAPAction) but it gives me null. i have written a request interceptor in camel blueprint.
  <br/>
  <strong>TASK TO DO:</strong> Aim is to intercept the webservice request retrieve username &amp; password from headers &amp; check whether the user have have rights to consume the requested SOAPAction/OperationName. How can i achieve this.? Is there any other approach to do this.</p>
  
  <pre><code>public class Interceptor extends AbstractSoapInterceptor {
  
      Logger _log = Logger.getLogger(Interceptor.class);
  
      public Interceptor() {
          super(Phase.PRE_LOGICAL);
      }
  
      @Override
      public void handleMessage(SoapMessage message) {
          _log.info(".... IM HERE INTERCEPTOR");
  
          Map&lt;String, List&lt;String&gt;&gt; headers = CastUtils.cast((Map) message.get(Message.PROTOCOL_HEADERS));
          _log.info(".... IM HERE INTERCEPTOR:::: " + headers.size());
  
          for (Entry&lt;String, List&lt;String&gt;&gt; entry : headers.entrySet()) {
              _log.info(entry.getKey() + " /// " + entry.getValue().get(0));
          }
      }
  }
  </code></pre>
  
  <p>Logs of my code are here: </p>
  
  <pre><code>.... IM HERE INTERCEPTOR
  .... IM HERE INTERCEPTOR:::: 9
  accept-encoding /// gzip,deflate
  connection /// keep-alive
  Content-Length /// 351
  content-type /// text/xml;charset=UTF-8
  Host /// localhost:8181
  password /// herman
  SOAPAction /// ""
  User-Agent /// Apache-HttpClient/4.1.1 (java 1.5)
  username /// herman
  </code></pre>
  
  <p>Below is Blueprint</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
      xmlns:camel="http://camel.apache.org/schema/blueprint"
      xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
      xmlns:cxf="http://camel.apache.org/schema/blueprint/cxf"
      xmlns:cxfcore="http://cxf.apache.org/blueprint/core"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="              http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd              http://camel.apache.org/schema/blueprint/cxf http://camel.apache.org/schema/blueprint/cxf/camel-cxf.xsd              http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint.xsd              http://cxf.apache.org/schemas/blueprint/core http://cxf.apache.org/schemas/blueprint/core.xsd              http://cxf.apache.org/blueprint/jaxws http://cxf.apache.org/blueprint/jaxws.xsd"&gt;
      &lt;bean class="pk.com.herman.log.query.QueryProcessor" id="QueryProcessor"/&gt;
      &lt;bean class="pk.com.herman.get.query.QueryGetProcessor" id="QueryGetProcessor"/&gt;
      &lt;bean class="pk.com.herman.interceptors.Interceptor" id="requestInterceptor"/&gt;
      &lt;cxfcore:bus bus="cxf"&gt;
          &lt;cxfcore:inInterceptors&gt;
              &lt;ref component-id="requestInterceptor"/&gt;
          &lt;/cxfcore:inInterceptors&gt;
      &lt;/cxfcore:bus&gt;
      &lt;cxf:cxfEndpoint address="/query/" id="queryEndpoint" serviceClass="pk.com.herman.log.query.QueryService"/&gt;
      &lt;camelContext id="camelContext-282c3eaf-a6ba-4f22-bee7-9ad3fd7ae3ca" xmlns="http://camel.apache.org/schema/blueprint"&gt;
          &lt;route id="cxf"&gt;
              &lt;!-- route starts from the cxf webservice in POJO mode --&gt;
              &lt;from id="_from1" uri="cxf:bean:queryEndpoint"/&gt;
              &lt;recipientList id="_recipientList1"&gt;
                  &lt;simple&gt;direct:${header.operationName}&lt;/simple&gt;
              &lt;/recipientList&gt;
          &lt;/route&gt;
          &lt;route id="query"&gt;
              &lt;from id="_from2" uri="direct:reportQuery"/&gt;
              &lt;log id="_log1" message="Query Call"/&gt;
              &lt;process id="_process1" ref="QueryProcessor"/&gt;
              &lt;to id="_to1" uri="log:output"/&gt;
          &lt;/route&gt;
      &lt;/camelContext&gt;
  &lt;/blueprint&gt;
  </code></pre>