@@ -83,15 +83,17 @@ class ApiGatewayJWTGenericMiddleware(ApiGatewayJWTMiddleware):
8383class ApiGatewayJWTAppMiddleware :
8484 """Read the JWT information to set the request.app attribute"""
8585
86- App = namedtuple ("App" , ["bk_app_code" , "verified" ])
86+ App = namedtuple ("App" , ["bk_app_code" , "verified" , "tenant_mode" , "tenant_id" ])
8787
8888 def __init__ (self , get_response ):
8989 self .get_response = get_response
9090
91- def make_app (self , bk_app_code = None , verified = False , ** jwt_app ):
91+ def make_app (self , bk_app_code = None , verified = False , tenant_mode = "" , tenant_id = "" , ** jwt_app ):
9292 return self .App (
9393 bk_app_code = bk_app_code ,
9494 verified = verified ,
95+ tenant_mode = tenant_mode ,
96+ tenant_id = tenant_id ,
9597 )
9698
9799 def __call__ (self , request ):
@@ -111,13 +113,18 @@ class ApiGatewayJWTUserMiddleware:
111113 def __init__ (self , get_response ):
112114 self .get_response = get_response
113115
114- def get_user (self , request , gateway_name = None , bk_username = None , verified = False , ** credentials ):
116+ def get_user (self , request , gateway_name = None , bk_username = None , tenant_id = None , verified = False , ** credentials ):
115117 # 传递 gateway_name 参数的用途:
116118 # 1. 来明确标识这个请求来自于网关
117119 # 2. 用户已经过认证,后端无需再认证
118120 # 3. 避免非预期调用激活对应后端使得用户认证被绕过
119121 return auth .authenticate (
120- request , gateway_name = gateway_name , bk_username = bk_username , verified = verified , ** credentials
122+ request ,
123+ gateway_name = gateway_name ,
124+ bk_username = bk_username ,
125+ tenant_id = tenant_id ,
126+ verified = verified ,
127+ ** credentials ,
121128 )
122129
123130 def __call__ (self , request ):
@@ -151,9 +158,14 @@ def __init__(self):
151158 def make_anonymous_user (self , bk_username = None ):
152159 user = AnonymousUser ()
153160 user .username = bk_username # type: ignore
161+ # set the tenant_id
162+ user .tenant_id = "" # type: ignore
154163 return user
155164
156- def authenticate (self , request , gateway_name , bk_username , verified , ** credentials ):
165+ def authenticate (self , request , gateway_name , bk_username , tenant_id , verified , ** credentials ):
157166 if not verified :
158167 return self .make_anonymous_user (bk_username = bk_username )
159- return self .user_maker (bk_username )
168+
169+ user = self .user_maker (bk_username )
170+ user .tenant_id = tenant_id # type: ignore
171+ return user
0 commit comments