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
+3 -3
View File
@@ -1,13 +1,13 @@
{ {
"files": { "files": {
"main.css": "/static/css/main.08225a85.css", "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", "index.html": "/index.html",
"main.08225a85.css.map": "/static/css/main.08225a85.css.map", "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": [ "entrypoints": [
"static/css/main.08225a85.css", "static/css/main.08225a85.css",
"static/js/main.60a32900.js" "static/js/main.852729b0.js"
] ]
} }
+1 -1
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
File diff suppressed because one or more lines are too long
+11 -21
View File
@@ -14,10 +14,10 @@ class BearerSession():
def get(self, endpoint, json={}): def get(self, endpoint, json={}):
return self.s.get(endpoint, json=json, headers=self.headers) 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}"} self.headers = {"Authorization": f"Bearer {token}"}
def unsetToken(self): def unset_token(self):
self.headers = {} self.headers = {}
class FiregexAPI: class FiregexAPI:
@@ -27,42 +27,32 @@ class FiregexAPI:
def login(self,password): def login(self,password):
req = self.s.post(f"{self.address}api/login", data=f"username=login&password={password}") req = self.s.post(f"{self.address}api/login", data=f"username=login&password={password}")
print(req.text)
try : try :
self.s.setToken(req.json()["access_token"]) self.s.set_token(req.json()["access_token"])
return True return True
except Exception: except Exception:
return False return False
def logout(self): def logout(self):
self.s.unsetToken() self.s.unset_token()
return True return True
def change_password(self,password,expire): def change_password(self,password,expire):
req = self.s.post(f"{self.address}api/change-password", json={"password":password, "expire":expire}) req = self.s.post(f"{self.address}api/change-password", json={"password":password, "expire":expire})
try: try:
self.s.setToken(req.json()["access_token"]) self.s.set_token(req.json()["access_token"])
return True return True
except Exception: except Exception:
return False return False
def create_service(self,service_name,service_port): 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}) req = self.s.post(f"{self.address}api/services/add" , json={"name":service_name,"port":service_port, "ipv6": ipv6})
return req.json()["status"] == "ok" return req.json()["service_id"] if req.json()["status"] == "ok" else None
def get_service_details(self,service_name): def get_service(self,service_id):
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):
req = self.s.get(f"{self.address}api/service/{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): def get_service_regexes(self,service_id):
req = self.s.get(f"{self.address}api/service/{service_id}/regexes") req = self.s.get(f"{self.address}api/service/{service_id}/regexes")
+15 -22
View File
@@ -50,7 +50,8 @@ else: puts(f"Test Failed: Coundl't change the password ✗", color=colors.red);
#Create new Service #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) puts(f"Sucessfully created service {args.service_name} with public port {args.service_port} ✔", color=colors.green)
service_created = True service_created = True
else: puts(f"Test Failed: Couldn't create service ✗", color=colors.red); exit(1) 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 #Delete the Service and exit
def exit_test(status_code=0): def exit_test(status_code=0):
if service_created: if service_created:
if(firegex.delete(service_id)): if(firegex.delete(service)):
puts(f"Sucessfully delete service with id {service_id} ✔", color=colors.green) puts(f"Sucessfully delete service with id {service} ✔", color=colors.green)
else: else:
puts(f"Test Failed: Couldn't delete service ✗", color=colors.red); exit(1) puts(f"Test Failed: Couldn't delete service ✗", color=colors.red); exit(1)
sep() sep()
server.terminate() server.terminate()
exit(status_code) 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 #Start listener
def startServer(port): def startServer(port):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
@@ -86,11 +79,11 @@ def startServer(port):
connection.send(buf) connection.send(buf)
connection.close() connection.close()
server = Process(target=startServer,args=[internal_port]) server = Process(target=startServer,args=[args.service_port])
server.start() server.start()
#Start firewall #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) 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 #Hacky solution - wait a bit for the server to start
@@ -113,7 +106,7 @@ else:
#Add new regex #Add new regex
secret = bytes(secrets.token_hex(16).encode()) secret = bytes(secrets.token_hex(16).encode())
regex = base64.b64encode(secret).decode() 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) 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 #Check if regex is present in the service
@@ -121,7 +114,7 @@ n_blocked = 0
def checkRegex(regex): def checkRegex(regex):
global n_blocked global n_blocked
for r in firegex.get_service_regexes(service_id): for r in firegex.get_service_regexes(service):
if r["regex"] == regex: if r["regex"] == regex:
#Test the regex #Test the regex
if not sendCheckData(secrets.token_bytes(200) + secret + secrets.token_bytes(200)): if not sendCheckData(secrets.token_bytes(200) + secret + secrets.token_bytes(200)):
@@ -139,7 +132,7 @@ def checkRegex(regex):
checkRegex(regex) checkRegex(regex)
#Pause the proxy #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) else: puts(f"Test Failed: Coulnd't pause the service ✗", color=colors.red); exit_test(1)
#Check if it's actually paused #Check if it's actually paused
@@ -148,7 +141,7 @@ if sendCheckData(secrets.token_bytes(200) + secret + secrets.token_bytes(200)):
else: else:
puts(f"Test Failed: The request was blocked when it shouldn't have", color=colors.red) puts(f"Test Failed: The request was blocked when it shouldn't have", color=colors.red)
#Stop the proxy #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) 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 #Check if proxy is stopped and check if WAIT works
@@ -169,9 +162,9 @@ bindingTest.start()
sleep(1) sleep(1)
#Restart it #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) 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) puts(f"Service started in WAIT mode ✔", color=colors.green)
else: else:
puts(f"Service started but it's not WAIT mode ✗", color=colors.red); exit_test(1) puts(f"Service started but it's not WAIT mode ✗", color=colors.red); exit_test(1)
@@ -179,7 +172,7 @@ else:
bindingTest.join() bindingTest.join()
sleep(1) sleep(1)
#Check if service started in pause mode successfully #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) puts(f"Service started in PAUSE mode ✔", color=colors.green)
else: else:
puts(f"Service is not in PAUSE mode ✗", color=colors.red); exit_test(1) 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) puts(f"Test Failed: The request was blocked when it shouldn't have", color=colors.red)
#Restart it and check #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) else: puts(f"Test Failed: Coulnd't start the service ✗", color=colors.red); exit_test(1)
checkRegex(regex) checkRegex(regex)
#Delete the regex #Delete the regex
def removeRegex(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 r["regex"] == regex:
if(firegex.delete_regex(r["id"])): puts(f"Sucessfully deleted regex ✔", color=colors.green) 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) else: puts(f"Test Failed: Coulnd't deleted the regex ✗", color=colors.red); exit_test(1)