Updated frontend build & tests

This commit is contained in:
nik012003
2022-07-10 17:10:07 +02:00
parent a340a3316b
commit 6c890e3d95
8 changed files with 34 additions and 51 deletions

View File

@@ -1,13 +1,13 @@
{
"files": {
"main.css": "/static/css/main.08225a85.css",
"main.js": "/static/js/main.60a32900.js",
"main.js": "/static/js/main.852729b0.js",
"index.html": "/index.html",
"main.08225a85.css.map": "/static/css/main.08225a85.css.map",
"main.60a32900.js.map": "/static/js/main.60a32900.js.map"
"main.852729b0.js.map": "/static/js/main.852729b0.js.map"
},
"entrypoints": [
"static/css/main.08225a85.css",
"static/js/main.60a32900.js"
"static/js/main.852729b0.js"
]
}

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#FFFFFFFF"/><meta name="description" content="Firegex by Pwnzer0tt1"/><title>Firegex</title><script defer="defer" src="/static/js/main.60a32900.js"></script><link href="/static/css/main.08225a85.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/site.webmanifest"><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#FFFFFFFF"/><meta name="description" content="Firegex by Pwnzer0tt1"/><title>Firegex</title><script defer="defer" src="/static/js/main.852729b0.js"></script><link href="/static/css/main.08225a85.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -14,10 +14,10 @@ class BearerSession():
def get(self, endpoint, json={}):
return self.s.get(endpoint, json=json, headers=self.headers)
def setToken(self,token):
def set_token(self,token):
self.headers = {"Authorization": f"Bearer {token}"}
def unsetToken(self):
def unset_token(self):
self.headers = {}
class FiregexAPI:
@@ -27,42 +27,32 @@ class FiregexAPI:
def login(self,password):
req = self.s.post(f"{self.address}api/login", data=f"username=login&password={password}")
print(req.text)
try :
self.s.setToken(req.json()["access_token"])
self.s.set_token(req.json()["access_token"])
return True
except Exception:
return False
def logout(self):
self.s.unsetToken()
self.s.unset_token()
return True
def change_password(self,password,expire):
req = self.s.post(f"{self.address}api/change-password", json={"password":password, "expire":expire})
try:
self.s.setToken(req.json()["access_token"])
self.s.set_token(req.json()["access_token"])
return True
except Exception:
return False
def create_service(self,service_name,service_port):
req = self.s.post(f"{self.address}api/services/add" , json={"name":service_name,"port":service_port})
return req.json()["status"] == "ok"
def create_service(self,service_name,service_port, ipv6 = False):
req = self.s.post(f"{self.address}api/services/add" , json={"name":service_name,"port":service_port, "ipv6": ipv6})
return req.json()["service_id"] if req.json()["status"] == "ok" else None
def get_service_details(self,service_name):
req = self.s.get(f"{self.address}api/services")
service = None
try:
for service in req.json():
if service["name"] == service_name:
return service
except Exception:
pass
return service
def get_service_status(self,service_id):
def get_service(self,service_id):
req = self.s.get(f"{self.address}api/service/{service_id}")
return req.json()["status"]
return req.json()
def get_service_regexes(self,service_id):
req = self.s.get(f"{self.address}api/service/{service_id}/regexes")

View File

@@ -50,7 +50,8 @@ else: puts(f"Test Failed: Coundl't change the password ✗", color=colors.red);
#Create new Service
if (firegex.create_service(args.service_name,args.service_port)):
service = firegex.create_service(args.service_name,args.service_port)
if service:
puts(f"Sucessfully created service {args.service_name} with public port {args.service_port}", color=colors.green)
service_created = True
else: puts(f"Test Failed: Couldn't create service ✗", color=colors.red); exit(1)
@@ -58,22 +59,14 @@ else: puts(f"Test Failed: Couldn't create service ✗", color=colors.red); exit(
#Delete the Service and exit
def exit_test(status_code=0):
if service_created:
if(firegex.delete(service_id)):
puts(f"Sucessfully delete service with id {service_id}", color=colors.green)
if(firegex.delete(service)):
puts(f"Sucessfully delete service with id {service}", color=colors.green)
else:
puts(f"Test Failed: Couldn't delete service ✗", color=colors.red); exit(1)
sep()
server.terminate()
exit(status_code)
#Find the Service
service = firegex.get_service_details(args.service_name)
if (service):
internal_port= service["internal_port"]
service_id = service["id"]
puts(f"Sucessfully received the internal port {internal_port}", color=colors.green)
else: puts(f"Test Failed: Coulnd't get the service internal port ✗", color=colors.red); exit_test(1)
#Start listener
def startServer(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -86,11 +79,11 @@ def startServer(port):
connection.send(buf)
connection.close()
server = Process(target=startServer,args=[internal_port])
server = Process(target=startServer,args=[args.service_port])
server.start()
#Start firewall
if(firegex.start(service_id)): puts(f"Sucessfully started service with id {service_id}", color=colors.green)
if(firegex.start(service)): puts(f"Sucessfully started service with id {service}", color=colors.green)
else: puts(f"Test Failed: Coulnd't start the service ✗", color=colors.red); exit_test(1)
#Hacky solution - wait a bit for the server to start
@@ -113,7 +106,7 @@ else:
#Add new regex
secret = bytes(secrets.token_hex(16).encode())
regex = base64.b64encode(secret).decode()
if(firegex.add_regex(service_id,regex)): puts(f"Sucessfully added regex {secret}", color=colors.green)
if(firegex.add_regex(service,regex)): puts(f"Sucessfully added regex {secret}", color=colors.green)
else: puts(f"Test Failed: Coulnd't add the regex {secret}", color=colors.red); exit_test(1)
#Check if regex is present in the service
@@ -121,7 +114,7 @@ n_blocked = 0
def checkRegex(regex):
global n_blocked
for r in firegex.get_service_regexes(service_id):
for r in firegex.get_service_regexes(service):
if r["regex"] == regex:
#Test the regex
if not sendCheckData(secrets.token_bytes(200) + secret + secrets.token_bytes(200)):
@@ -139,7 +132,7 @@ def checkRegex(regex):
checkRegex(regex)
#Pause the proxy
if(firegex.pause(service_id)): puts(f"Sucessfully paused service with id {service_id}", color=colors.green)
if(firegex.pause(service)): puts(f"Sucessfully paused service with id {service}", color=colors.green)
else: puts(f"Test Failed: Coulnd't pause the service ✗", color=colors.red); exit_test(1)
#Check if it's actually paused
@@ -148,7 +141,7 @@ if sendCheckData(secrets.token_bytes(200) + secret + secrets.token_bytes(200)):
else:
puts(f"Test Failed: The request was blocked when it shouldn't have", color=colors.red)
#Stop the proxy
if(firegex.stop(service_id)): puts(f"Sucessfully stopped service with id {service_id}", color=colors.green)
if(firegex.stop(service)): puts(f"Sucessfully stopped service with id {service}", color=colors.green)
else: puts(f"Test Failed: Coulnd't stop the service ✗", color=colors.red); exit_test(1)
#Check if proxy is stopped and check if WAIT works
@@ -169,9 +162,9 @@ bindingTest.start()
sleep(1)
#Restart it
if(firegex.pause(service_id)): puts(f"Sucessfully started in pause mode ✔", color=colors.green)
if(firegex.pause(service)): puts(f"Sucessfully started in pause mode ✔", color=colors.green)
else: puts(f"Test Failed: Coulnd't start the service ✗", color=colors.red); exit_test(1)
if firegex.get_service_details(args.service_name)["status"] == "wait":
if firegex.get_service(service)["status"] == "wait":
puts(f"Service started in WAIT mode ✔", color=colors.green)
else:
puts(f"Service started but it's not WAIT mode ✗", color=colors.red); exit_test(1)
@@ -179,7 +172,7 @@ else:
bindingTest.join()
sleep(1)
#Check if service started in pause mode successfully
if firegex.get_service_details(args.service_name)["status"] == "pause":
if firegex.get_service(service)["status"] == "pause":
puts(f"Service started in PAUSE mode ✔", color=colors.green)
else:
puts(f"Service is not in PAUSE mode ✗", color=colors.red); exit_test(1)
@@ -190,14 +183,14 @@ else:
puts(f"Test Failed: The request was blocked when it shouldn't have", color=colors.red)
#Restart it and check
if(firegex.start(service_id)): puts(f"Sucessfully started service with id {service_id}", color=colors.green)
if(firegex.start(service)): puts(f"Sucessfully started service with id {service}", color=colors.green)
else: puts(f"Test Failed: Coulnd't start the service ✗", color=colors.red); exit_test(1)
checkRegex(regex)
#Delete the regex
def removeRegex(regex):
for r in firegex.get_service_regexes(service_id):
for r in firegex.get_service_regexes(service):
if r["regex"] == regex:
if(firegex.delete_regex(r["id"])): puts(f"Sucessfully deleted regex ✔", color=colors.green)
else: puts(f"Test Failed: Coulnd't deleted the regex ✗", color=colors.red); exit_test(1)