@@ -79,13 +79,21 @@ class TestOIDCProviderConfig:
79
79
'issuer' : 'https://oidc.com/issuer' ,
80
80
'display_name' : 'oidcProviderName' ,
81
81
'enabled' : True ,
82
+ 'id_token_response_type' : True ,
83
+ 'code_response_type' : True ,
84
+ 'client_secret' : 'CLIENT_SECRET' ,
82
85
}
83
86
84
87
OIDC_CONFIG_REQUEST = {
85
88
'displayName' : 'oidcProviderName' ,
86
89
'enabled' : True ,
87
90
'clientId' : 'CLIENT_ID' ,
91
+ 'clientSecret' : 'CLIENT_SECRET' ,
88
92
'issuer' : 'https://oidc.com/issuer' ,
93
+ 'responseType' : {
94
+ 'code' : True ,
95
+ 'idToken' : True ,
96
+ },
89
97
}
90
98
91
99
@pytest .mark .parametrize ('provider_id' , INVALID_PROVIDER_IDS + ['saml.provider' ])
@@ -112,6 +120,11 @@ def test_get(self, user_mgt_app):
112
120
{'issuer' : None }, {'issuer' : '' }, {'issuer' : 'not a url' },
113
121
{'display_name' : True },
114
122
{'enabled' : 'true' },
123
+ {'id_token_response_type' : 'true' }, {'code_response_type' : 'true' },
124
+ {'code_response_type' : True , 'client_secret' : '' },
125
+ {'code_response_type' : True , 'client_secret' : True },
126
+ {'code_response_type' : True , 'client_secret' : None },
127
+ {'code_response_type' : False , 'id_token_response_type' : False },
115
128
])
116
129
def test_create_invalid_args (self , user_mgt_app , invalid_opts ):
117
130
options = dict (self .VALID_CREATE_OPTIONS )
@@ -139,9 +152,14 @@ def test_create_minimal(self, user_mgt_app):
139
152
options = dict (self .VALID_CREATE_OPTIONS )
140
153
del options ['display_name' ]
141
154
del options ['enabled' ]
155
+ del options ['client_secret' ]
156
+ del options ['id_token_response_type' ]
157
+ del options ['code_response_type' ]
142
158
want = dict (self .OIDC_CONFIG_REQUEST )
143
159
del want ['displayName' ]
144
160
del want ['enabled' ]
161
+ del want ['clientSecret' ]
162
+ del want ['responseType' ]
145
163
146
164
provider_config = auth .create_oidc_provider_config (** options , app = user_mgt_app )
147
165
@@ -159,9 +177,15 @@ def test_create_empty_values(self, user_mgt_app):
159
177
options = dict (self .VALID_CREATE_OPTIONS )
160
178
options ['display_name' ] = ''
161
179
options ['enabled' ] = False
180
+ options ['code_response_type' ] = False
162
181
want = dict (self .OIDC_CONFIG_REQUEST )
163
182
want ['displayName' ] = ''
164
183
want ['enabled' ] = False
184
+ want ['responseType' ] = {
185
+ 'code' : False ,
186
+ 'idToken' : True ,
187
+ }
188
+ del want ['clientSecret' ]
165
189
166
190
provider_config = auth .create_oidc_provider_config (** options , app = user_mgt_app )
167
191
@@ -181,6 +205,11 @@ def test_create_empty_values(self, user_mgt_app):
181
205
{'issuer' : '' }, {'issuer' : 'not a url' },
182
206
{'display_name' : True },
183
207
{'enabled' : 'true' },
208
+ {'id_token_response_type' : 'true' }, {'code_response_type' : 'true' },
209
+ {'code_response_type' : True , 'client_secret' : '' },
210
+ {'code_response_type' : True , 'client_secret' : True },
211
+ {'code_response_type' : True , 'client_secret' : None },
212
+ {'code_response_type' : False , 'id_token_response_type' : False },
184
213
])
185
214
def test_update_invalid_args (self , user_mgt_app , invalid_opts ):
186
215
options = {'provider_id' : 'oidc.provider' }
@@ -198,7 +227,8 @@ def test_update(self, user_mgt_app):
198
227
assert len (recorder ) == 1
199
228
req = recorder [0 ]
200
229
assert req .method == 'PATCH'
201
- mask = ['clientId' , 'displayName' , 'enabled' , 'issuer' ]
230
+ mask = ['clientId' , 'clientSecret' , 'displayName' , 'enabled' , 'issuer' ,
231
+ 'responseType.code' , 'responseType.idToken' ]
202
232
assert req .url == '{0}/oauthIdpConfigs/oidc.provider?updateMask={1}' .format (
203
233
USER_MGT_URLS ['PREFIX' ], ',' .join (mask ))
204
234
got = json .loads (req .body .decode ())
@@ -223,17 +253,18 @@ def test_update_empty_values(self, user_mgt_app):
223
253
recorder = _instrument_provider_mgt (user_mgt_app , 200 , OIDC_PROVIDER_CONFIG_RESPONSE )
224
254
225
255
provider_config = auth .update_oidc_provider_config (
226
- 'oidc.provider' , display_name = auth .DELETE_ATTRIBUTE , enabled = False , app = user_mgt_app )
256
+ 'oidc.provider' , display_name = auth .DELETE_ATTRIBUTE , enabled = False ,
257
+ id_token_response_type = False , app = user_mgt_app )
227
258
228
259
self ._assert_provider_config (provider_config )
229
260
assert len (recorder ) == 1
230
261
req = recorder [0 ]
231
262
assert req .method == 'PATCH'
232
- mask = ['displayName' , 'enabled' ]
263
+ mask = ['displayName' , 'enabled' , 'responseType.idToken' ]
233
264
assert req .url == '{0}/oauthIdpConfigs/oidc.provider?updateMask={1}' .format (
234
265
USER_MGT_URLS ['PREFIX' ], ',' .join (mask ))
235
266
got = json .loads (req .body .decode ())
236
- assert got == {'displayName' : None , 'enabled' : False }
267
+ assert got == {'displayName' : None , 'enabled' : False , 'responseType' : { 'idToken' : False } }
237
268
238
269
@pytest .mark .parametrize ('provider_id' , INVALID_PROVIDER_IDS + ['saml.provider' ])
239
270
def test_delete_invalid_provider_id (self , user_mgt_app , provider_id ):
0 commit comments