From 16616ed217ef124ad3b977d8f3a60457cff86df4 Mon Sep 17 00:00:00 2001 From: virusdefender Date: Thu, 26 Jan 2017 13:55:31 +0800 Subject: [PATCH] auto generate client token --- conf/views.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/conf/views.py b/conf/views.py index 3883a2e7..3dc99591 100644 --- a/conf/views.py +++ b/conf/views.py @@ -96,11 +96,13 @@ class JudgeServerHeartbeatAPI(CSRFExemptAPIView): def post(self, request): judge_server_token = JudgeServerToken.objects.first() if not judge_server_token: - return self.error("Web server token not set") - token = judge_server_token.token + token = rand_str(12) + JudgeServerToken.objects.create(token=token) + else: + token = judge_server_token.token data = request.data - judge_server_token = request.META.get("HTTP_X_JUDGE_SERVER_TOKEN") - if hashlib.sha256(token.encode("utf-8")).hexdigest() != judge_server_token: + client_token = request.META.get("HTTP_X_JUDGE_SERVER_TOKEN") + if hashlib.sha256(token.encode("utf-8")).hexdigest() != client_token: return self.error("Invalid token") service_url = data.get("service_url")