mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2025-06-19 15:40:59 +00:00
Add require-api-key-secret
This commit is contained in:
parent
b3e9105d21
commit
f2792e5001
7 changed files with 88 additions and 13 deletions
|
@ -1,11 +1,16 @@
|
|||
import atexit
|
||||
import random
|
||||
import string
|
||||
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
|
||||
def generate_secret():
|
||||
return ''.join(random.choices(string.ascii_uppercase + string.digits, k=7))
|
||||
|
||||
banned = {}
|
||||
active = False
|
||||
threshold = -1
|
||||
|
||||
secrets = [generate_secret(), generate_secret()]
|
||||
|
||||
def forgive_banned():
|
||||
global banned
|
||||
|
@ -22,6 +27,16 @@ def forgive_banned():
|
|||
for ip in clear_list:
|
||||
del banned[ip]
|
||||
|
||||
def rotate_secrets():
|
||||
global secrets
|
||||
secrets[0] = secrets[1]
|
||||
secrets[1] = generate_secret()
|
||||
|
||||
def secret_match(s):
|
||||
return s in secrets
|
||||
|
||||
def get_current_secret():
|
||||
return secrets[1]
|
||||
|
||||
def setup(violations_threshold=100):
|
||||
global active
|
||||
|
@ -32,6 +47,8 @@ def setup(violations_threshold=100):
|
|||
|
||||
scheduler = BackgroundScheduler()
|
||||
scheduler.add_job(func=forgive_banned, trigger="interval", minutes=30)
|
||||
scheduler.add_job(func=rotate_secrets, trigger="interval", minutes=30)
|
||||
|
||||
scheduler.start()
|
||||
|
||||
# Shut down the scheduler when exiting the app
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue