From 9d05e7f2fab57faac8b6a9fa3c17f86f9e84903f Mon Sep 17 00:00:00 2001
From: zhouping <zhouping@supervision.ltd>
Date: Wed, 10 Jul 2024 16:33:32 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE=E4=BF=A1?=
 =?UTF-8?q?=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docker-compose.yml       | 13 +++++++++++--
 entrypoint.sh            | 19 ++++++++++++++-----
 nginx.conf               |  2 +-
 website/util/rsa_oaep.py | 40 +++++++++++++++++++++++++---------------
 4 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/docker-compose.yml b/docker-compose.yml
index 96d883e..e0c5ea9 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -21,6 +21,14 @@ services:
       - /dev/mem:/dev/mem
     environment:
       - TZ=Asia/Shanghai
+      - MYSQL_DATABASE=aiplatform
+      - MYSQL_USER=root
+      - MYSQL_PASSWORD=SghjdA887#
+      - MYSQL_HOST=lemon_mysql
+      - MYSQL_PORT=3306
+      - REDIS_HOST=lemon_redis
+      - REDIS_PORT=6379
+      - REDIS_PASSWORD=hgkiYY87
     networks:
       - lemon_network
     depends_on:
@@ -32,8 +40,9 @@ services:
     image: nginx:latest
     container_name: lemon_nginx
     ports:
-      - "80:80"
-      - "443:443"
+#      - "80:80"
+#      - "443:443"
+      - "8989:8989"
     volumes:
       - ./nginx.conf:/etc/nginx/conf.d/lemon.conf
       - ./dist:/app/lemon/dist
diff --git a/entrypoint.sh b/entrypoint.sh
index fdc2081..1a3d231 100644
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -22,14 +22,23 @@
 if [ ! -f "/app/lemon/website/settings_local.py" ];then
     echo "@@init settings_local file"
     cat > /app/lemon/website/settings_local.py << EOF
+import os
+
 mysql_app = {
-    "host": "lemon_mysql:3306",
-    "database": "aiplatform",
-    "user": "root",
-    "password": "SghjdA887#",
+    "host": "{}:{}".format(os.environ.get("MYSQL_HOST"), os.environ.get("MYSQL_PORT")),
+    "database": os.environ.get("MYSQL_DATABASE"),
+    "user": os.environ.get("MYSQL_USER"),
+    "password": os.environ.get("MYSQL_PASSWORD"),
     "time_zone": "+8:00"
 }
-redis_app = ("lemon_redis", 6379, 0, "hgkiYY87")
+
+redis_app = (
+    os.environ.get("REDIS_HOST"),
+    os.environ.get("REDIS_PORT"),
+    0,
+    os.environ.get("REDIS_PASSWORD"),
+)
+
 file_upload_dir = "/app/fileupload"
 rsa_private_file = "/app/lemon/private_key.pem"
 rsa_license_file = "/app/lemon/license"
diff --git a/nginx.conf b/nginx.conf
index c0692e8..efcfb4f 100644
--- a/nginx.conf
+++ b/nginx.conf
@@ -1,5 +1,5 @@
 server {
-    listen 80;
+    listen 8989;
     server_name 192.168.10.94;
 
     root /app/lemon/dist;
diff --git a/website/util/rsa_oaep.py b/website/util/rsa_oaep.py
index e79b649..b67cc3d 100644
--- a/website/util/rsa_oaep.py
+++ b/website/util/rsa_oaep.py
@@ -71,27 +71,37 @@ def test():
     print(decrypted_message)
 
 
+def save_keys():
+    private_key, public_key = generate_keys()
+
+    with open("private_key.pem", "wb") as f:
+        f.write(private_key)
+
+    with open("public_key.pem", "wb") as f:
+        f.write(public_key)
+
+
 # 主程序
 if __name__ == "__main__":
     parser = argparse.ArgumentParser(description='manual to sign enterprise license')
-    parser.add_argument("--o", type=str, help="operation type", required=True)  # name, t/test, s/sign, g/generate key, d/decrypt
-    parser.add_argument("--c", type=str, help="enterprise's sys code")  # code
-    parser.add_argument("--e", type=str, help="expire date")  # expire
+    parser.add_argument("-o", type=str,
+                        help="operation type, "
+                             "'t' is for function test, "
+                             "'s' is to sign and save license, "
+                             "'g' is to generate keys and save them, "
+                             "'d' is to decrypt license",
+                        required=True)  # name, t/test, s/sign, g/generate key, d/decrypt
+    parser.add_argument("-c", type=str, help="enterprise's sys code, its something code like MD5")  # code
+    parser.add_argument("-e", type=str, help="expire date, eg: 2035-01-01")  # expire
 
     args = parser.parse_args()
     operation = args.o
-    if operation == "t":
+    if operation == "t":  # test
         test()
-    elif operation == "g":
-        private_key, public_key = generate_keys()
-
-        with open("private_key.pem", "wb") as f:
-            f.write(private_key)
-
-        with open("public_key.pem", "wb") as f:
-            f.write(public_key)
+    elif operation == "g":  # generate keys and save
+        save_keys()
 
-    elif operation == "s":
+    elif operation == "s":  # sign and save license
         code = args.c
         expire = args.e
         if not code or not expire:
@@ -104,11 +114,11 @@ if __name__ == "__main__":
 
         with open("license", "wb") as f:
             f.write(license)
-    elif operation == "d":
+    elif operation == "d":  # decrypt license
         private_key = open("private_key.pem", "r").read()
         with open("license", "rb") as f:
             license = f.read()
             # 解密消息
             body = decrypt_message_pri(private_key.strip('\n').encode('utf-8'), license)
             json_body = json.loads(body)
-            print(json_body)
\ No newline at end of file
+            print(json_body)