@@ -47,44 +47,71 @@ def _extract_params(self):
4747 self .params ["password" ] = self .request .POST .get ("password" , "" )
4848
4949 def validate_params (self ):
50+ log_extra = {
51+ "client_id" : self .params ["client_id" ],
52+ "redirecT_uri" : self .params ["redirect_uri" ],
53+ "grant_type" : self .params ["grant_type" ],
54+ "scope" : self .params ["scope" ],
55+ }
5056 try :
5157 self .client = Client .objects .get (client_id = self .params ["client_id" ])
5258 except Client .DoesNotExist :
53- logger .debug ("[Token] Client does not exist: %s" , self .params ["client_id" ])
59+ logger .info (
60+ "[OIDC:Token] Client does not exist: %s" ,
61+ self .params ["client_id" ],
62+ extra = log_extra ,
63+ )
5464 raise TokenError ("invalid_client" )
5565
5666 if self .client .client_type == "confidential" :
5767 if not (self .client .client_secret == self .params ["client_secret" ]):
58- logger .debug (
59- "[Token] Invalid client secret: client %s do not have secret %s" ,
68+ logger .info (
69+ "[OIDC: Token] Invalid client secret: client %s do not have secret %s" ,
6070 self .client .client_id ,
6171 self .client .client_secret ,
72+ extra = log_extra ,
6273 )
6374 raise TokenError ("invalid_client" )
6475
6576 if self .params ["grant_type" ] == "authorization_code" :
6677 if self .params ["redirect_uri" ] not in self .client .redirect_uris :
67- logger .debug ("[Token] Invalid redirect uri: %s" , self .params ["redirect_uri" ])
78+ logger .info (
79+ "[OIDC:Token] Invalid redirect uri: %s" ,
80+ self .params ["redirect_uri" ],
81+ extra = log_extra ,
82+ )
6883 raise TokenError ("invalid_client" )
6984
7085 try :
7186 self .code = Code .objects .select_for_update (nowait = True ).get (
7287 code = self .params ["code" ]
7388 )
7489 except DatabaseError :
75- logger .debug ("[Token] Code cannot be reused: %s" , self .params ["code" ])
90+ logger .info (
91+ "[OIDC:Token] Code cannot be reused: %s" ,
92+ self .params ["code" ],
93+ extra = log_extra ,
94+ )
7695 raise TokenError ("invalid_grant" )
7796 except Code .DoesNotExist :
78- logger .debug ("[Token] Code does not exist: %s" , self .params ["code" ])
97+ logger .info (
98+ "[OIDC:Token] Code does not exist: %s" ,
99+ self .params ["code" ],
100+ extra = log_extra ,
101+ )
79102 raise TokenError ("invalid_grant" )
80103
81104 if not (self .code .client == self .client ) or self .code .has_expired ():
82- logger .debug ("[Token] Invalid code: invalid client or code has expired" )
105+ logger .info (
106+ "[OIDC:Token] Invalid code: invalid client or code has expired" ,
107+ extra = log_extra ,
108+ )
83109 raise TokenError ("invalid_grant" )
84110
85111 # Validate PKCE parameters.
86112 if self .code .code_challenge :
87113 if self .params ["code_verifier" ] is None :
114+ logger .info ("[OIDC:Token] Missing code_verifier" , extra = log_extra )
88115 raise TokenError ("invalid_grant" )
89116
90117 if self .code .code_challenge_method == "S256" :
@@ -100,6 +127,10 @@ def validate_params(self):
100127
101128 # TODO: We should explain the error.
102129 if not (new_code_challenge == self .code .code_challenge ):
130+ logger .info (
131+ "[OIDC:Token] code verifier did not match code challenge" ,
132+ extra = log_extra ,
133+ )
103134 raise TokenError ("invalid_grant" )
104135
105136 elif self .params ["grant_type" ] == "password" :
@@ -123,7 +154,7 @@ def validate_params(self):
123154
124155 elif self .params ["grant_type" ] == "refresh_token" :
125156 if not self .params ["refresh_token" ]:
126- logger .debug ("[Token] Missing refresh token" )
157+ logger .info ("[OIDC: Token] Missing refresh token" )
127158 raise TokenError ("invalid_grant" )
128159
129160 try :
@@ -132,16 +163,16 @@ def validate_params(self):
132163 )
133164
134165 except Token .DoesNotExist :
135- logger .debug (
136- "[Token] Refresh token does not exist: %s" , self .params ["refresh_token" ]
166+ logger .info (
167+ "[OIDC: Token] Refresh token does not exist: %s" , self .params ["refresh_token" ]
137168 )
138169 raise TokenError ("invalid_grant" )
139170 elif self .params ["grant_type" ] == "client_credentials" :
140171 if not self .client ._scope :
141- logger .debug ("[Token] Client using client credentials with empty scope" )
172+ logger .info ("[OIDC: Token] Client using client credentials with empty scope" )
142173 raise TokenError ("invalid_scope" )
143174 else :
144- logger .debug ("[Token] Invalid grant type: %s" , self .params ["grant_type" ])
175+ logger .info ("[OIDC: Token] Invalid grant type: %s" , self .params ["grant_type" ])
145176 raise TokenError ("unsupported_grant_type" )
146177
147178 def validate_requested_scopes (self ):
@@ -158,7 +189,7 @@ def validate_requested_scopes(self):
158189 token_scopes .append (scope_requested )
159190 else :
160191 logger .error (
161- "[Token] The request scope %s is not supported by client %s" ,
192+ "[OIDC: Token] The request scope %s is not supported by client %s" ,
162193 scope_requested ,
163194 self .client .client_id ,
164195 )
0 commit comments