Updated frontend build & tests
This commit is contained in:
@@ -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 @@
|
|||||||
<!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
3
frontend/build/static/js/main.852729b0.js
Normal file
3
frontend/build/static/js/main.852729b0.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user