Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions src/main/resources/scripts/const.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
#! /usr/bin/python

# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.

__author__ = "iammyr"
__date__ = "$17-Jun-2015 16:02:52$"
'''
Created on 13 Apr 2015

@author: iammyr
'''


def constant(f):
def fset(self, value):
raise SyntaxError
def fget(self):
return f()
return property(fget, fset)

class _Const(object):
@constant
def HTML_START():
return '<!DOCTYPE html><html> <head><title>OWASP WebGoat Benchmark</title> \
<meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"> \
</head><body><div><ul>'
@constant
def HTML_END():
return '</ul></div></body></html>'
@constant
def LIST_ITEM_START1():
return '<li><a href="'
@constant
def LIST_ITEM_START2():
return '">'
@constant
def LIST_ITEM_END():
return '</a></li>'
@constant
def XML_START():
return '<?xml version="1.0" encoding="UTF-8"?> \
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" \
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee \
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> '
@constant
def XML_END():
return '</web-app>'
@constant
def SERVLET_XML_START1():
return ' <servlet> <servlet-name>owasp-webgoat-benchmark '
@constant
def SERVLET_XML_START2():
return '</servlet-name> <servlet-class>org.owasp.webgoat.benchmark.testcode.'
@constant
def SERVLET_XML_START3():
return '</servlet-class> </servlet> <servlet-mapping> \
<servlet-name>owasp-webgoat-benchmark '
@constant
def SERVLET_XML_START4():
return '</servlet-name><url-pattern>/'
@constant
def SERVLET_XML_START5():
return '</url-pattern></servlet-mapping>'

CONST = _Const()

66 changes: 66 additions & 0 deletions src/main/resources/scripts/index-descriptor_gen.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
#! /usr/bin/python

# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.

__author__ = "iammyr"
__date__ = "$17-Jun-2015 14:40:15$"

import os
from const import CONST
import argparse

'''
Extracts all the .class files from a directory and its sub-directories recursively.
@param root absolute path of a directory from which to start to traverse
@return: list of .class file names
'''
def recursive_dir_traversal(rootDir):
file_names = []
for root, subDirList, files in os.walk(rootDir):
for filename in files:
if filename.endswith((".java")):
file_names.append(filename[:-5])
return file_names


def createIndexHtml(tot_tests):
content = CONST.HTML_START
for ind in range(1, tot_tests):
content += CONST.LIST_ITEM_START1 + str(ind) + CONST.LIST_ITEM_START2 + \
"Benchmark " + str(ind) + CONST.LIST_ITEM_END
content += CONST.HTML_END
return content

def saveToFile(content, filename):
# print "writing to " + filename
# print "the content:\n" + content
with open(filename, 'w') as file_:
file_.write(content)

def createDescriptorXml(tests):
content = CONST.XML_START
ind = 1
for name in tests:
content += CONST.SERVLET_XML_START1 + str(ind) + \
CONST.SERVLET_XML_START2 + name + CONST.SERVLET_XML_START3 + str(ind) + \
CONST.SERVLET_XML_START4 + str(ind) + CONST.SERVLET_XML_START5
ind += 1
content += CONST.XML_END
return content


if __name__ == "__main__":
args_parser = argparse.ArgumentParser()
args_parser.add_argument("-md", "--maindir", required=True, dest="main_dir")
args = args_parser.parse_args()

tests = recursive_dir_traversal(args.main_dir + '/src/main/java/org/owasp/webgoat/benchmark/testcode/')
print createIndexHtml(len(tests))
saveToFile(createIndexHtml(len(tests)), args.main_dir + '/src/main/webapp/WEB-INF/index.html')
print createDescriptorXml(tests)
saveToFile(createDescriptorXml(tests), args.main_dir + '/src/main/webapp/WEB-INF/web.xml')