From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../TestApp/src/Parser/CssParser.java | 41 ++ .../TestApp/src/Parser/HtmlParser.java | 56 +++ .../TestApp/src/Parser/JavascriptParser.java | 44 +++ .../TestApp/src/Parser/UrlAnalyzer.java | 161 ++++++++ .../TestApp/src/Parser/Visitor.java | 96 +++++ .../TestApp/src/testapp/App.java | 60 +++ .../TestApp/src/testapp/AppFrame.java | 172 +++++++++ .../TestApp/src/testapp/DOTGenerator.java | 54 +++ .../TestApp/src/testapp/GraphGenerator.java | 81 ++++ .../TestApp/src/testapp/ImageComponent.java | 46 +++ .../TestApp/src/testapp/ItemGenerator.java | 92 +++++ .../TestApp/src/testapp/Locate.java | 90 +++++ .../TestApp/src/testapp/data/ExternalCssItem.java | 58 +++ .../src/testapp/data/ExternalJavascriptItem.java | 56 +++ .../TestApp/src/testapp/data/FrameItem.java | 51 +++ .../TestApp/src/testapp/data/GraphConstants.java | 44 +++ .../TestApp/src/testapp/data/IframeItem.java | 51 +++ .../TestApp/src/testapp/data/ImageItem.java | 102 +++++ .../TestApp/src/testapp/data/Item.java | 413 +++++++++++++++++++++ .../src/testapp/data/ItemClassification.java | 14 + .../TestApp/src/testapp/data/ItemPlace.java | 14 + .../TestApp/src/testapp/data/ItemType.java | 14 + .../TestApp/src/testapp/data/LinkItem.java | 50 +++ .../TestApp/src/testapp/data/PageItem.java | 48 +++ .../TestApp/src/testapp/data/ScriptItem.java | 62 ++++ .../TestApp/src/testapp/data/StyleItem.java | 47 +++ 26 files changed, 2017 insertions(+) create mode 100644 Master/Agile Software Development/TestApp/src/Parser/CssParser.java create mode 100644 Master/Agile Software Development/TestApp/src/Parser/HtmlParser.java create mode 100644 Master/Agile Software Development/TestApp/src/Parser/JavascriptParser.java create mode 100644 Master/Agile Software Development/TestApp/src/Parser/UrlAnalyzer.java create mode 100644 Master/Agile Software Development/TestApp/src/Parser/Visitor.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/App.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/AppFrame.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/DOTGenerator.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/GraphGenerator.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/ImageComponent.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/ItemGenerator.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/Locate.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ExternalCssItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ExternalJavascriptItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/FrameItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/GraphConstants.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/IframeItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ImageItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/Item.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ItemClassification.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ItemPlace.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ItemType.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/LinkItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/PageItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/ScriptItem.java create mode 100644 Master/Agile Software Development/TestApp/src/testapp/data/StyleItem.java (limited to 'Master/Agile Software Development/TestApp/src') diff --git a/Master/Agile Software Development/TestApp/src/Parser/CssParser.java b/Master/Agile Software Development/TestApp/src/Parser/CssParser.java new file mode 100644 index 0000000..9b11a1e --- /dev/null +++ b/Master/Agile Software Development/TestApp/src/Parser/CssParser.java @@ -0,0 +1,41 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package Parser; + +import testapp.data.ExternalCssItem; +import testapp.data.Item; +import java.util.logging.*; + +/** + * + * @author robb + */ +public class CssParser { + private Item rootNode; + private String srcUrl; + + public CssParser(Item rootNode) { + this.rootNode=rootNode; + } + + public ExternalCssItem parse(String url) { + // Todo: http client to recieve url and put contents into code + String code=new String(); + return parseCode(code); + } + + public ExternalCssItem parseCode(String code) { + ExternalCssItem externalCssItem=new ExternalCssItem(srcUrl,rootNode); + rootNode.add(externalCssItem); + + // check for @import and mark Suspicious + if(code.contains("@import")) { + externalCssItem.setSuspiciousCode(); + } + + return externalCssItem; + } +} diff --git a/Master/Agile Software Development/TestApp/src/Parser/HtmlParser.java b/Master/Agile Software Development/TestApp/src/Parser/HtmlParser.java new file mode 100644 index 0000000..96ad2b2 --- /dev/null +++ b/Master/Agile Software Development/TestApp/src/Parser/HtmlParser.java @@ -0,0 +1,56 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package Parser; + +import java.util.logging.Level; +import java.util.logging.Logger; +import org.htmlparser.util.NodeList; +import org.htmlparser.util.ParserException; +import testapp.data.Item; +import testapp.data.PageItem; +import java.util.logging.*; + +/** + * + * @author + */ +public class HtmlParser //extends NodeVisitor { +{ + + public HtmlParser() { + } + + public Item parse(String url) { + try { + PageItem rootNode = new PageItem(url,null); + + org.htmlparser.Parser parser = new org.htmlparser.Parser(rootNode.getUrl()); + NodeList nodeList = parser.parse(null); + + nodeList.visitAllNodesWith(new Visitor(rootNode)); + + return rootNode; + + } catch (ParserException ex) { + Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } + + public Item parse(Item rootItem) { + try { + org.htmlparser.Parser parser = new org.htmlparser.Parser(rootItem.getUrl()); + NodeList nodeList = parser.parse(null); + + nodeList.visitAllNodesWith(new Visitor(rootItem)); + + return rootItem; + + } catch (ParserException ex) { + Logger.getLogger(HtmlParser.class.getName()).log(Level.SEVERE, null, ex); + return null; + } + } +} diff --git a/Master/Agile Software Development/TestApp/src/Parser/JavascriptParser.java b/Master/Agile Software Development/TestApp/src/Parser/JavascriptParser.java new file mode 100644 index 0000000..4cfe0ec --- /dev/null +++ b/Master/Agile Software Development/TestApp/src/Parser/JavascriptParser.java @@ -0,0 +1,44 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package Parser; + +import testapp.data.ExternalJavascriptItem; +import testapp.data.Item; +import java.util.logging.*; + +public class JavascriptParser { + private Item rootNode; + + private static final Logger logger = Logger.getLogger(JavascriptParser.class.getName()); + + + public JavascriptParser(Item rootNode) { + this.rootNode=rootNode; + } + + public ExternalJavascriptItem parse(String url) { + // Todo: http client to recieve url and put contents into code + String code=new String(); + return parseCode(code, url); + } + + public ExternalJavascriptItem parseCode(String code, String url) { + // the only evil js code should be + //document.write('