public class org.owasp.validator.html.scan.AntiSamySAXScanner extends org.owasp.validator.html.scan.AbstractAntiSamyScanner
{
private static final java.util.Queue cachedItems;
private static final javax.xml.transform.TransformerFactory sTransformerFactory;
static void <clinit>()
{
java.lang.String v;
javax.xml.transform.TransformerFactory v, v, v;
java.util.concurrent.ConcurrentLinkedQueue v;
v = new java.util.concurrent.ConcurrentLinkedQueue;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedQueue: void <init>()>();
<org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.Queue cachedItems> = v;
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String,java.lang.String)>("antisamy.transformerfactory.impl", "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl");
v = staticinvoke <javax.xml.transform.TransformerFactory: javax.xml.transform.TransformerFactory newInstance(java.lang.String,java.lang.ClassLoader)>(v, null);
<org.owasp.validator.html.scan.AntiSamySAXScanner: javax.xml.transform.TransformerFactory sTransformerFactory> = v;
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: javax.xml.transform.TransformerFactory sTransformerFactory>;
virtualinvoke v.<javax.xml.transform.TransformerFactory: void setAttribute(java.lang.String,java.lang.Object)>("http://javax.xml.XMLConstants/property/accessExternalDTD", "");
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: javax.xml.transform.TransformerFactory sTransformerFactory>;
virtualinvoke v.<javax.xml.transform.TransformerFactory: void setAttribute(java.lang.String,java.lang.Object)>("http://javax.xml.XMLConstants/property/accessExternalStylesheet", "");
return;
}
public void <init>(org.owasp.validator.html.Policy)
{
org.owasp.validator.html.Policy v;
org.owasp.validator.html.scan.AntiSamySAXScanner v;
v := @this: org.owasp.validator.html.scan.AntiSamySAXScanner;
v := @parameter: org.owasp.validator.html.Policy;
specialinvoke v.<org.owasp.validator.html.scan.AbstractAntiSamyScanner: void <init>(org.owasp.validator.html.Policy)>(v);
return;
}
public org.owasp.validator.html.CleanResults getResults()
{
org.owasp.validator.html.scan.AntiSamySAXScanner v;
v := @this: org.owasp.validator.html.scan.AntiSamySAXScanner;
return null;
}
public org.owasp.validator.html.CleanResults scan(java.lang.String) throws org.owasp.validator.html.ScanException
{
org.owasp.validator.html.scan.AntiSamySAXScanner v;
org.owasp.validator.html.CleanResults v;
org.owasp.validator.html.InternalPolicy v;
java.lang.String v;
v := @this: org.owasp.validator.html.scan.AntiSamySAXScanner;
v := @parameter: java.lang.String;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.InternalPolicy policy>;
v = virtualinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.CleanResults scan(java.lang.String,org.owasp.validator.html.Policy)>(v, v);
return v;
}
public org.owasp.validator.html.CleanResults scan(java.lang.String, org.owasp.validator.html.Policy) throws org.owasp.validator.html.ScanException
{
org.owasp.validator.html.Policy v;
org.owasp.validator.html.scan.AntiSamySAXScanner v;
java.lang.Object[] v;
org.owasp.validator.html.InternalPolicy v;
long v;
java.lang.Integer v, v;
java.lang.NullPointerException v;
org.owasp.validator.html.ScanException v, v;
int v, v, v;
java.lang.String v;
org.owasp.validator.html.CleanResults v, v;
java.io.StringWriter v;
java.util.List v, v;
java.io.StringReader v;
java.lang.Object v;
org.owasp.validator.html.scan.AntiSamySAXScanner$1 v;
v := @this: org.owasp.validator.html.scan.AntiSamySAXScanner;
v := @parameter: java.lang.String;
v := @parameter: org.owasp.validator.html.Policy;
if v != null goto label;
v = new org.owasp.validator.html.ScanException;
v = new java.lang.NullPointerException;
specialinvoke v.<java.lang.NullPointerException: void <init>(java.lang.String)>("Null html input");
specialinvoke v.<org.owasp.validator.html.ScanException: void <init>(java.lang.Exception)>(v);
throw v;
label:
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.InternalPolicy policy>;
v = virtualinvoke v.<org.owasp.validator.html.InternalPolicy: int getMaxInputSize()>();
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= v goto label;
v = newarray (java.lang.Object)[2];
v = virtualinvoke v.<java.lang.String: int length()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
virtualinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner: void addError(java.lang.String,java.lang.Object[])>("error.size.toolarge", v);
v = new org.owasp.validator.html.ScanException;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.List errorMessages>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(0);
specialinvoke v.<org.owasp.validator.html.ScanException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.io.StringWriter;
specialinvoke v.<java.io.StringWriter: void <init>()>();
v = new java.io.StringReader;
specialinvoke v.<java.io.StringReader: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.CleanResults scan(java.io.Reader,java.io.Writer)>(v, v);
v = new org.owasp.validator.html.scan.AntiSamySAXScanner$1;
specialinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner$1: void <init>(org.owasp.validator.html.scan.AntiSamySAXScanner,java.lang.String,java.io.StringWriter)>(v, v, v);
v = new org.owasp.validator.html.CleanResults;
v = virtualinvoke v.<org.owasp.validator.html.CleanResults: long getStartOfScan()>();
v = virtualinvoke v.<org.owasp.validator.html.CleanResults: java.util.List getErrorMessages()>();
specialinvoke v.<org.owasp.validator.html.CleanResults: void <init>(long,java.util.concurrent.Callable,org.w3c.dom.DocumentFragment,java.util.List)>(v, v, null, v);
return v;
}
public org.owasp.validator.html.CleanResults scan(java.io.Reader, java.io.Writer) throws org.owasp.validator.html.ScanException
{
javax.xml.transform.Transformer v, v;
javax.xml.transform.sax.SAXResult v;
boolean v, v;
org.owasp.validator.html.CleanResults v;
org.apache.xml.serialize.HTMLSerializer v;
java.io.Reader v;
org.owasp.validator.html.scan.MagicSAXFilter v, v, v;
java.lang.Exception v;
java.util.List v, v, v, v;
java.io.Writer v;
java.util.Queue v, v;
org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem v, v;
org.owasp.validator.html.scan.AntiSamySAXScanner v;
org.owasp.validator.html.InternalPolicy v, v, v;
long v;
org.htmlunit.cyberneko.parsers.SAXParser v, v;
java.util.ResourceBundle v;
org.owasp.validator.html.ScanException v;
java.lang.String v, v;
org.xml.sax.InputSource v;
org.apache.xml.serialize.OutputFormat v;
javax.xml.transform.sax.SAXSource v;
java.lang.Object v;
v := @this: org.owasp.validator.html.scan.AntiSamySAXScanner;
v := @parameter: java.io.Reader;
v := @parameter: java.io.Writer;
label:
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.Queue cachedItems>;
v = interfaceinvoke v.<java.util.Queue: java.lang.Object poll()>();
if v != null goto label;
v = new org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem;
v = staticinvoke <org.owasp.validator.html.scan.AntiSamySAXScanner: javax.xml.transform.Transformer getNewTransformer()>();
v = staticinvoke <org.owasp.validator.html.scan.AntiSamySAXScanner: org.htmlunit.cyberneko.parsers.SAXParser getParser()>();
v = new org.owasp.validator.html.scan.MagicSAXFilter;
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.ResourceBundle messages>;
specialinvoke v.<org.owasp.validator.html.scan.MagicSAXFilter: void <init>(java.util.ResourceBundle)>(v);
specialinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem: void <init>(javax.xml.transform.Transformer,org.htmlunit.cyberneko.parsers.SAXParser,org.owasp.validator.html.scan.MagicSAXFilter)>(v, v, v);
v = v;
label:
v = v;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem: org.htmlunit.cyberneko.parsers.SAXParser saxParser>;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem: org.owasp.validator.html.scan.MagicSAXFilter magicSAXFilter>;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.InternalPolicy policy>;
virtualinvoke v.<org.owasp.validator.html.scan.MagicSAXFilter: void reset(org.owasp.validator.html.InternalPolicy)>(v);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = new javax.xml.transform.sax.SAXSource;
v = new org.xml.sax.InputSource;
specialinvoke v.<org.xml.sax.InputSource: void <init>(java.io.Reader)>(v);
specialinvoke v.<javax.xml.transform.sax.SAXSource: void <init>(org.xml.sax.XMLReader,org.xml.sax.InputSource)>(v, v);
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem: javax.xml.transform.Transformer transformer>;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.InternalPolicy policy>;
v = virtualinvoke v.<org.owasp.validator.html.InternalPolicy: boolean isFormatOutput()>();
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.owasp.validator.html.InternalPolicy policy>;
v = virtualinvoke v.<org.owasp.validator.html.InternalPolicy: boolean isOmitXmlDeclaration()>();
if v == 0 goto label;
v = "yes";
goto label;
label:
v = "no";
label:
virtualinvoke v.<javax.xml.transform.Transformer: void setOutputProperty(java.lang.String,java.lang.String)>("indent", v);
if v == 0 goto label;
v = "yes";
goto label;
label:
v = "no";
label:
virtualinvoke v.<javax.xml.transform.Transformer: void setOutputProperty(java.lang.String,java.lang.String)>("omit-xml-declaration", v);
virtualinvoke v.<javax.xml.transform.Transformer: void setOutputProperty(java.lang.String,java.lang.String)>("method", "html");
v = virtualinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.apache.xml.serialize.OutputFormat getOutputFormat()>();
v = virtualinvoke v.<org.owasp.validator.html.scan.AntiSamySAXScanner: org.apache.xml.serialize.HTMLSerializer getHTMLSerializer(java.io.Writer,org.apache.xml.serialize.OutputFormat)>(v, v);
v = new javax.xml.transform.sax.SAXResult;
specialinvoke v.<javax.xml.transform.sax.SAXResult: void <init>(org.xml.sax.ContentHandler)>(v);
virtualinvoke v.<javax.xml.transform.Transformer: void transform(javax.xml.transform.Source,javax.xml.transform.Result)>(v, v);
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.List errorMessages>;
interfaceinvoke v.<java.util.List: void clear()>();
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.List errorMessages>;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner$CachedItem: org.owasp.validator.html.scan.MagicSAXFilter magicSAXFilter>;
v = virtualinvoke v.<org.owasp.validator.html.scan.MagicSAXFilter: java.util.List getErrorMessages()>();
interfaceinvoke v.<java.util.List: boolean addAll(java.util.Collection)>(v);
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.Queue cachedItems>;
interfaceinvoke v.<java.util.Queue: boolean add(java.lang.Object)>(v);
v = new org.owasp.validator.html.CleanResults;
v = v.<org.owasp.validator.html.scan.AntiSamySAXScanner: java.util.List errorMessages>;
specialinvoke v.<org.owasp.validator.html.CleanResults: void <init>(long,java.lang.String,org.w3c.dom.DocumentFragment,java.util.List)>(v, null, null, v);
label:
return v;
label:
v := @caughtexception;
v = new org.owasp.validator.html.ScanException;
specialinvoke v.<org.owasp.validator.html.ScanException: void <init>(java.lang.Exception)>(v);
throw v;
catch java.lang.Exception from label to label with label;
}
private static synchronized javax.xml.transform.Transformer getNewTransformer()
{
javax.xml.transform.Transformer v;
javax.xml.transform.TransformerConfigurationException v;
java.lang.RuntimeException v;
javax.xml.transform.TransformerFactory v;
label:
v = <org.owasp.validator.html.scan.AntiSamySAXScanner: javax.xml.transform.TransformerFactory sTransformerFactory>;
v = virtualinvoke v.<javax.xml.transform.TransformerFactory: javax.xml.transform.Transformer newTransformer()>();
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch javax.xml.transform.TransformerConfigurationException from label to label with label;
}
private static org.htmlunit.cyberneko.parsers.SAXParser getParser()
{
java.lang.RuntimeException v;
org.htmlunit.cyberneko.parsers.SAXParser v;
org.xml.sax.SAXException v;
label:
v = new org.htmlunit.cyberneko.parsers.SAXParser;
specialinvoke v.<org.htmlunit.cyberneko.parsers.SAXParser: void <init>()>();
virtualinvoke v.<org.htmlunit.cyberneko.parsers.SAXParser: void setFeature(java.lang.String,boolean)>("http://xml.org/sax/features/namespaces", 0);
virtualinvoke v.<org.htmlunit.cyberneko.parsers.SAXParser: void setFeature(java.lang.String,boolean)>("http://cyberneko.org/html/features/balance-tags/document-fragment", 1);
virtualinvoke v.<org.htmlunit.cyberneko.parsers.SAXParser: void setFeature(java.lang.String,boolean)>("http://cyberneko.org/html/features/scanner/cdata-sections", 1);
virtualinvoke v.<org.htmlunit.cyberneko.parsers.SAXParser: void setProperty(java.lang.String,java.lang.Object)>("http://cyberneko.org/html/properties/names/elems", "lower");
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.Throwable)>(v);
throw v;
catch org.xml.sax.SAXNotRecognizedException from label to label with label;
catch org.xml.sax.SAXNotSupportedException from label to label with label;
}
}