@@ -64,17 +64,34 @@ export class AuthenticationHelper<T> {
64
64
this . _cryptoHelper = cryptoHelper ;
65
65
}
66
66
67
+ public async resolveWellKnownEndpoint ( ) : Promise < string > {
68
+ const configData = await this . _config ( ) ;
69
+
70
+ const wellKnownEndpoint = ( configData as any ) . wellKnownEndpoint ||
71
+ configData ?. endpoints ?. wellKnownEndpoint ;
72
+
73
+ const baseUrl = ( configData as any ) . baseUrl || ( configData as any ) . serverOrigin ;
74
+
75
+ if ( wellKnownEndpoint ) {
76
+ return wellKnownEndpoint ;
77
+ } else {
78
+ return baseUrl + SERVICE_RESOURCES . wellKnownEndpoint ;
79
+ }
80
+ }
81
+
67
82
public async resolveEndpoints ( response : OIDCProviderMetaData ) : Promise < OIDCProviderMetaData > {
68
83
const oidcProviderMetaData = { } ;
69
84
const configData = await this . _config ( ) ;
70
85
71
- configData . endpoints &&
72
- Object . keys ( configData . endpoints ) . forEach ( ( endpointName : string ) => {
73
- const snakeCasedName = endpointName . replace ( / [ A - Z ] / g, ( letter ) => `_${ letter . toLowerCase ( ) } ` ) ;
74
- oidcProviderMetaData [ snakeCasedName ] = configData ?. endpoints
75
- ? configData . endpoints [ endpointName ]
76
- : "" ;
77
- } ) ;
86
+ if ( configData . overrideWellEndpointConfig ) {
87
+ configData . endpoints &&
88
+ Object . keys ( configData . endpoints ) . forEach ( ( endpointName : string ) => {
89
+ const snakeCasedName = endpointName . replace ( / [ A - Z ] / g, ( letter ) => `_${ letter . toLowerCase ( ) } ` ) ;
90
+ oidcProviderMetaData [ snakeCasedName ] = configData ?. endpoints
91
+ ? configData . endpoints [ endpointName ]
92
+ : "" ;
93
+ } ) ;
94
+ }
78
95
79
96
return { ...response , ...oidcProviderMetaData } ;
80
97
}
0 commit comments