package oracle.demo.header;
import java.io.*; import java.util.Map;
import javax.xml.namespace.QName; import javax.xml.rpc.handler.MessageContext; import javax.xml.rpc.handler.HandlerInfo; import javax.xml.rpc.handler.soap.SOAPMessageContext; import javax.xml.soap.*; import javax.xml.soap.SOAPFactory;
import java.text.DateFormat; import java.util.Date;
import com.sun.xml.rpc.soap.message.*;
public class ClientAuthenticator implements javax.xml.rpc.handler.Handler {
private PrintStream out =System.out; private QName[] headers;
private DateFormat formater = DateFormat.getDateTimeInstance();
private static String PREFIX ="ns0"; private static String URI ="http://oracle.j2ee.ws/ejb/Credit";
private static String VALID_ID="SCOTT"; private static String VALID_PASSWORD="TIGER";
public ClientAuthenticator () { out.println("--- In ClientAuthenticator Constructor."); }
public void init(HandlerInfo info) { out.println("--- In ClientAuthenticator.init ()"); }
public boolean handleFault(MessageContext context) { out.println("--- In ClientAuthenticator.handleFault ()" + context); return true; }
public boolean handleRequest (MessageContext context) {
out.println("--- In ClientAuthenticator.handleRequest () at "
+formater.format(new Date())); try {
SOAPMessageContext smc = (SOAPMessageContext) context;
SOAPEnvelope se = smc.getMessage().getSOAPPart().getEnvelope();
SOAPFactory sFactory = SOAPFactory.newInstance();
SOAPElement sHelem1 = sFactory.createElement("authHeader1",PREFIX,URI); SOAPElement sCHelem11 = sFactory.createElement("id",PREFIX,URI);
sCHelem11.addTextNode("SCOTT"); SOAPElement sCHelem12 = sFactory.createElement("password",PREFIX,URI);
sCHelem12.addTextNode("TIGER");
sHelem1.addChildElement(sCHelem11); sHelem1.addChildElement(sCHelem12);
SOAPHeader sh = se.addHeader();
sh.addChildElement(sHelem1); } catch (Exception ex) { ex.printStackTrace(); } return true; }
public boolean handleResponse (MessageContext context) { out.println("--- In ClientAuthenticator.handleResponse ()"); return true; }
public javax.xml.namespace.QName[] getHeaders() { out.println("--- In ClientAuthenticator.getHeaders ()"); return null; }
public void destroy() { out.println("--- In ClientAuthenticator.destroy ()"); out.close(); }
}
|