11# Copyright (C) 2024 Intel Corporation
22# SPDX-License-Identifier: Apache-2.0
3-
43"""
54Security utilities - JWT, password hashing, authentication
65Industry-standard security implementation
@@ -53,9 +52,7 @@ def get_password_hash(password: str) -> str:
5352 return pwd_context .hash (password )
5453
5554 @staticmethod
56- def create_access_token (
57- data : Dict [str , Any ], expires_delta : Optional [timedelta ] = None
58- ) -> str :
55+ def create_access_token (data : Dict [str , Any ], expires_delta : Optional [timedelta ] = None ) -> str :
5956 """Create a JWT access token.
6057
6158 Args:
@@ -141,9 +138,7 @@ def protected_route(user: Dict = Depends(get_current_user)):
141138 # Extract user info from payload
142139 email = payload .get ("sub" )
143140 if email is None :
144- raise HTTPException (
145- status_code = 401 , detail = "Invalid authentication credentials"
146- )
141+ raise HTTPException (status_code = 401 , detail = "Invalid authentication credentials" )
147142
148143 return payload
149144
@@ -160,9 +155,7 @@ def admin_route(user: Dict = Depends(require_role("Super Admin"))):
160155 def role_checker (current_user : Dict = Depends (get_current_user )):
161156 user_role = current_user .get ("role" )
162157 if user_role != required_role :
163- raise HTTPException (
164- status_code = 403 , detail = f"Access denied. Required role: { required_role } "
165- )
158+ raise HTTPException (status_code = 403 , detail = f"Access denied. Required role: { required_role } " )
166159 return current_user
167160
168161 return role_checker
@@ -241,9 +234,7 @@ class RateLimiter:
241234 def __init__ (self ):
242235 self .requests = {}
243236
244- def is_allowed (
245- self , identifier : str , max_requests : int = 60 , window_seconds : int = 60
246- ) -> bool :
237+ def is_allowed (self , identifier : str , max_requests : int = 60 , window_seconds : int = 60 ) -> bool :
247238 """Check if request is allowed under rate limit.
248239
249240 Args:
@@ -261,9 +252,7 @@ def is_allowed(
261252
262253 # Clean old requests
263254 cutoff = now - timedelta (seconds = window_seconds )
264- self .requests [identifier ] = [
265- req_time for req_time in self .requests [identifier ] if req_time > cutoff
266- ]
255+ self .requests [identifier ] = [req_time for req_time in self .requests [identifier ] if req_time > cutoff ]
267256
268257 # Check limit
269258 if len (self .requests [identifier ]) >= max_requests :
0 commit comments