Example CustomSoapHeaderExtractor
package com.tibco.cim.authentication.webservice;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.axiom.soap.SOAPHeaderBlock;
import com.tibco.cim.authentication.ExtractorInput;
import com.tibco.cim.authentication.IHeaderExtractor;
import com.tibco.mdm.infrastructure.error.MqException;
/**
*
*
* Description: Custom soap header extractor.
*/
public class CustomSoapHeaderExtractor implements IHeaderExtractor {
/**
* Description: This method takes input parameter of type ExtractorInput and calls getMsgContext() which is used
* to get the SoapHeaders, The Child elements of soap headers are assigned to an iterator which are iterated and
* a check is been made for the custom parameter and the corresponding parameter is which CIM login module understand is assigned
* This method returns extracted header map populated from the SoapHeaders
*
* <soapenv:Header>
<customUsername>a</username>
<customPwd>a</customPwd>
<customEnterprise>a</customEnterprise>
</soapenv:Header>
*
*
* @return extracted headers
*/
public Map<String,String> getHeaders(ExtractorInput input) throws MqException {
//first get it from soap headers
//Lets get headers
Iterator itr = input.getMsgContext().getEnvelope().getHeader().getChildElements();
Map<String,String> headerMap = new HashMap<String,String>() ;
MqLog.log(this, MqLog.DEBUG,
"=======HEADER START PROCESS=========");
while (itr.hasNext()) {
SOAPHeaderBlock headerBlock = (SOAPHeaderBlock)itr.next() ;
String value = headerBlock.getText() ;
String name = headerBlock.getQName().getLocalPart() ;
if(name.equals("customUserName")){
name="username";
}else if(name.equals("customPwd")){
name="pwd";
}else if(name.equals("customEnterprise")){
name="enterprise";
}
headerMap.put(name, value) ;
}
MqLog.log(this, MqLog.DEBUG, "--HEADER END PROCESS--");
//Now get from http headers
return headerMap ;
}
}
Copyright © Cloud Software Group, Inc. All rights reserved.
