@@ -198,9 +198,13 @@ export const initOPConfiguration = (
198198 }
199199
200200 const serverHost = requestParams . serverOrigin ;
201+ let wellKnownEndpoint = serverHost + SERVICE_RESOURCES . wellKnown ;
202+ if ( requestParams ?. endpoints ?. wellKnown ) {
203+ wellKnownEndpoint = requestParams . endpoints . wellKnown ;
204+ }
201205
202206 return axios
203- . get ( serverHost + SERVICE_RESOURCES . wellKnown )
207+ . get ( wellKnownEndpoint )
204208 . then ( ( response : { data : OpenIDConfig ; status : number } ) => {
205209 if ( response . status !== 200 ) {
206210 return Promise . reject (
@@ -211,17 +215,41 @@ export const initOPConfiguration = (
211215 }
212216
213217 setOPConfig ( response . data , requestParams ) ;
214- setAuthorizeEndpoint ( response . data . authorization_endpoint , requestParams ) ;
215- setTokenEndpoint ( response . data . token_endpoint , requestParams ) ;
216- setEndSessionEndpoint ( response . data . end_session_endpoint , requestParams ) ;
217- setJwksUri ( response . data . jwks_uri , requestParams ) ;
218- setRevokeTokenEndpoint (
219- response . data . token_endpoint . substring ( 0 , response . data . token_endpoint . lastIndexOf ( "token" ) ) + "revoke" ,
220- requestParams
221- ) ;
218+ if ( requestParams ?. endpoints ?. authorize ) {
219+ setAuthorizeEndpoint ( requestParams ?. endpoints ?. authorize , requestParams ) ;
220+ } else {
221+ setAuthorizeEndpoint ( response . data . authorization_endpoint , requestParams ) ;
222+ }
223+ if ( requestParams ?. endpoints ?. token ) {
224+ setTokenEndpoint ( requestParams ?. endpoints ?. token , requestParams ) ;
225+ } else {
226+ setTokenEndpoint ( response . data . token_endpoint , requestParams ) ;
227+ }
228+ if ( requestParams ?. endpoints ?. jwks ) {
229+ setJwksUri ( requestParams ?. endpoints ?. jwks , requestParams ) ;
230+ } else {
231+ setJwksUri ( response . data . jwks_uri , requestParams ) ;
232+ }
233+ if ( requestParams ?. endpoints ?. logout ) {
234+ setEndSessionEndpoint ( requestParams ?. endpoints ?. logout , requestParams ) ;
235+ } else {
236+ setEndSessionEndpoint ( response . data . end_session_endpoint , requestParams ) ;
237+ }
238+ if ( requestParams ?. endpoints ?. revoke ) {
239+ setRevokeTokenEndpoint ( requestParams ?. endpoints ?. revoke , requestParams ) ;
240+ } else {
241+ setRevokeTokenEndpoint (
242+ response . data . token_endpoint . substring ( 0 , response . data . token_endpoint . lastIndexOf ( "token" ) ) +
243+ "revoke" , requestParams
244+ ) ;
245+ }
222246 setIssuer ( response . data . issuer , requestParams ) ;
223247 setClientID ( requestParams ) ;
224- setOIDCSessionIFrameURL ( response . data . check_session_iframe , requestParams ) ;
248+ if ( requestParams ?. endpoints ?. oidcSessionIFrame ) {
249+ setOIDCSessionIFrameURL ( requestParams ?. endpoints ?. oidcSessionIFrame , requestParams ) ;
250+ } else {
251+ setOIDCSessionIFrameURL ( response . data . check_session_iframe , requestParams ) ;
252+ }
225253 setSignInRedirectURL ( requestParams . signInRedirectURL , requestParams ) ;
226254 setSignOutRedirectURL ( requestParams . signOutRedirectURL , requestParams ) ;
227255 setOPConfigInitiated ( requestParams ) ;
0 commit comments