feat: JumpServer支持部署在使用了ssl的redis上

This commit is contained in:
jiangweidong
2022-03-11 12:56:22 +08:00
parent b644c47173
commit f04378eaf8
7 changed files with 110 additions and 31 deletions

View File

@@ -1,23 +1,29 @@
import json
import threading
import redis
from redis import Redis
from django.conf import settings
from jumpserver.const import CONFIG
from common.http import is_true
from common.db.utils import safe_db_connection
from common.utils import get_logger
logger = get_logger(__name__)
def get_redis_client(db):
rc = redis.StrictRedis(
host=settings.REDIS_HOST,
port=settings.REDIS_PORT,
password=settings.REDIS_PASSWORD,
db=db
)
return rc
def get_redis_client(db=0):
params = {
'host': CONFIG.REDIS_HOST,
'port': CONFIG.REDIS_PORT,
'password': CONFIG.REDIS_PASSWORD,
'db': db,
"ssl": is_true(CONFIG.REDIS_USE_SSL),
'ssl_keyfile': getattr(settings, 'REDIS_SSL_KEYFILE'),
'ssl_certfile': getattr(settings, 'REDIS_SSL_CERTFILE'),
'ssl_ca_certs': getattr(settings, 'REDIS_SSL_CA_CERTS'),
}
return Redis(**params)
class Subscription:
@@ -99,5 +105,3 @@ class RedisPubSub:
data_json = json.dumps(data)
self.redis.publish(self.ch, data_json)
return True

View File

@@ -10,6 +10,7 @@ from django.db import transaction
from common.utils import get_logger
from common.utils.inspect import copy_function_args
from common.utils.connection import get_redis_client
from jumpserver.const import CONFIG
from common.local import thread_local
@@ -44,7 +45,7 @@ class DistributedLock(RedisLock):
是否可重入
"""
self.kwargs_copy = copy_function_args(self.__init__, locals())
redis = Redis(host=CONFIG.REDIS_HOST, port=CONFIG.REDIS_PORT, password=CONFIG.REDIS_PASSWORD)
redis = get_redis_client()
if expire is None:
expire = auto_renewal_seconds