FileDocCategorySizeDatePackage
LogHandler.javaAPI DocApache Axis 1.43613Sat Apr 22 18:56:52 BST 2006samples.security

LogHandler

public class LogHandler extends org.apache.axis.handlers.BasicHandler

Fields Summary
static Log
log
Constructors Summary
Methods Summary
public voidinvoke(org.apache.axis.MessageContext msgContext)


     
        org.apache.xml.security.Init.init();
    
        try {
            System.out.println("Starting Server verification");

            Message inMsg = msgContext.getRequestMessage();
            Message outMsg = msgContext.getResponseMessage();

            // verify signed message

            Document doc = inMsg.getSOAPEnvelope().getAsDocument();
            String BaseURI = "http://xml-security";
            CachedXPathAPI xpathAPI = new CachedXPathAPI();

            Element nsctx = doc.createElement("nsctx");
            nsctx.setAttribute("xmlns:ds", Constants.SignatureSpecNS);

            Element signatureElem = (Element) xpathAPI.selectSingleNode(doc,
                    "//ds:Signature", nsctx);

            // check to make sure that the document claims to have been signed
            if (signatureElem == null) {
                System.out.println("The document is not signed");
                return;
            }

            XMLSignature sig = new XMLSignature(signatureElem, BaseURI);

            boolean verify = sig.checkSignatureValue(sig.getKeyInfo().getPublicKey());
            System.out.println("Server verification complete.");

            System.out.println("The signature is" + (verify
                    ? " "
                    : " not ") + "valid");
        } catch (Exception e) {
            throw AxisFault.makeFault(e);
        }

    
public voidonFault(org.apache.axis.MessageContext msgContext)

        try {
            Handler serviceHandler = msgContext.getService();
            String filename = (String) getOption("filename");
            if ((filename == null) || (filename.equals("")))
                throw new AxisFault("Server.NoLogFile",
                        "No log file configured for the LogHandler!",
                        null, null);
            FileWriter fw = new FileWriter(filename, true);
            PrintWriter pw = new PrintWriter(fw);
            pw.println("=====================");
            pw.println("= " + Messages.getMessage("fault00"));
            pw.println("=====================");
            pw.close();
        } catch (Exception e) {
            log.error(e);
        }