@@ -32,8 +32,9 @@ def __init__(self, app: Any, attrs_var: ContextVar[Dict[str, Any]]) -> None:
3232 self ._attrs_var = attrs_var
3333
3434 async def dispatch (self , request : Request , call_next : Any ) -> Response :
35- set_auth_context (_parse_ias_claims (request ))
36- token = self ._attrs_var .set (_extract_ias_attrs (request ))
35+ claims , attrs = _parse_request (request )
36+ set_auth_context (claims )
37+ token = self ._attrs_var .set (attrs )
3738 try :
3839 return await call_next (request )
3940 finally :
@@ -81,35 +82,22 @@ def get_attributes(self) -> Dict[str, Any]:
8182 return self ._attrs_var .get ()
8283
8384
84- def _parse_ias_claims (request : Request ):
85- """Parse the Authorization header and return IASClaims, or None on failure ."""
85+ def _parse_request (request : Request ):
86+ """Parse the Authorization header and return ( IASClaims, telemetry_attrs) ."""
8687 auth = request .headers .get ("authorization" , "" )
87- if not auth :
88- return None
89- try :
90- return parse_token (auth )
91- except Exception as e :
92- logger .debug ("IAS token parsing failed, skipping telemetry attrs: %s" , e )
93- return None
94-
95-
96- def _extract_ias_attrs (request : Request ) -> Dict [str , Any ]:
97- """Parse the Authorization header and return telemetry attributes."""
98- auth = request .headers .get ("authorization" , "" )
99- if not auth :
100- return {}
101- try :
102- claims = parse_token (auth )
103- except Exception as e :
104- logger .debug ("IAS token parsing failed, skipping telemetry attrs: %s" , e )
105- return {}
106-
88+ claims = None
10789 attrs : Dict [str , Any ] = {}
108- if claims .sap_gtid :
109- attrs [ATTR_SAP_TENANT_ID ] = claims .sap_gtid
110- if claims .user_uuid :
111- attrs [ATTR_USER_ID ] = claims .user_uuid
90+ if auth :
91+ try :
92+ claims = parse_token (auth )
93+ except Exception as e :
94+ logger .debug ("IAS token parsing failed, skipping telemetry attrs: %s" , e )
95+ if claims is not None :
96+ if claims .sap_gtid :
97+ attrs [ATTR_SAP_TENANT_ID ] = claims .sap_gtid
98+ if claims .user_uuid :
99+ attrs [ATTR_USER_ID ] = claims .user_uuid
112100 origin = request .headers .get ("x-sap-origin" )
113101 if origin :
114102 attrs [ATTR_SAP_TRIGGER_TYPE ] = origin
115- return attrs
103+ return claims , attrs
0 commit comments