1313from idpyoidc .message .oauth2 import TokenExchangeResponse
1414from idpyoidc .message .oidc import RefreshAccessTokenRequest
1515from idpyoidc .message .oidc import TokenErrorResponse
16+ from idpyoidc .server .constant import DEFAULT_REQUESTED_TOKEN_TYPE
1617from idpyoidc .server .constant import DEFAULT_TOKEN_LIFETIME
1718from idpyoidc .server .exception import ToOld
1819from idpyoidc .server .exception import UnAuthorizedClientScope
@@ -597,11 +598,7 @@ def process_request(self, request, **kwargs):
597598 def _validate_configuration (self , config ):
598599 if "requested_token_types_supported" not in config :
599600 raise ImproperlyConfigured (
600- f"Missing 'requested_token_types_supported'" "from Token Exchange configuration"
601- )
602- if "default_requested_token_type" not in config :
603- raise ImproperlyConfigured (
604- f"Missing 'default_requested_token_type'" "from Token Exchange configuration"
601+ f"Missing 'requested_token_types_supported' from Token Exchange configuration"
605602 )
606603 if "policy" not in config :
607604 raise ImproperlyConfigured (f"Missing 'policy' from Token Exchange configuration" )
@@ -613,11 +610,14 @@ def _validate_configuration(self, config):
613610 raise ImproperlyConfigured (
614611 f"Missing 'callable' from default Token Exchange policy configuration"
615612 )
616- if config ["default_requested_token_type" ] not in config ["requested_token_types_supported" ]:
613+
614+ _default_requested_token_type = config .get ("default_requested_token_type" ,
615+ DEFAULT_REQUESTED_TOKEN_TYPE )
616+ if _default_requested_token_type not in config ["requested_token_types_supported" ]:
617617 raise ImproperlyConfigured (
618- f"Unsupported default requested_token_type { config [ 'default_requested_token_type' ] } "
618+ f"Unsupported default requested_token_type { _default_requested_token_type } "
619619 )
620-
620+
621621
622622def validate_token_exchange_policy (request , context , subject_token , ** kwargs ):
623623 if "resource" in request :
0 commit comments