TF-4339 Fix CORS issue on openid-configuration call (#4342)
This commit is contained in:
@@ -12,6 +12,9 @@ class DioClient {
|
||||
|
||||
Map<String, dynamic> getHeaders() => Map.from(_dio.options.headers);
|
||||
|
||||
Dio _createNewDio() => Dio()
|
||||
..httpClientAdapter = _dio.httpClientAdapter;
|
||||
|
||||
Future<dynamic> get(
|
||||
String path, {
|
||||
Map<String, dynamic>? queryParameters,
|
||||
@@ -32,6 +35,25 @@ class DioClient {
|
||||
.catchError((error) => throw error);
|
||||
}
|
||||
|
||||
Future<dynamic> getWithNewDio(
|
||||
String path, {
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
CancelToken? cancelToken,
|
||||
ProgressCallback? onReceiveProgress,
|
||||
}) async {
|
||||
return await _createNewDio()
|
||||
.get(
|
||||
path,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
cancelToken: cancelToken,
|
||||
onReceiveProgress: onReceiveProgress,
|
||||
)
|
||||
.then((value) => value.data)
|
||||
.catchError((error) => throw error);
|
||||
}
|
||||
|
||||
Future<dynamic> post(
|
||||
String path, {
|
||||
data,
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import 'package:core/presentation/state/failure.dart';
|
||||
import 'package:core/presentation/state/success.dart';
|
||||
import 'package:core/utils/app_logger.dart';
|
||||
import 'package:core/utils/platform_info.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.dart';
|
||||
@@ -23,6 +24,7 @@ import 'package:tmail_ui_user/features/login/domain/usecases/update_account_cach
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_interactors_bindings.dart';
|
||||
import 'package:tmail_ui_user/main/error/capability_validator.dart';
|
||||
import 'package:tmail_ui_user/main/exceptions/remote_exception.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_config.dart';
|
||||
|
||||
abstract class ReloadableController extends BaseController {
|
||||
final GetSessionInteractor getSessionInteractor = Get.find<GetSessionInteractor>();
|
||||
@@ -127,10 +129,15 @@ abstract class ReloadableController extends BaseController {
|
||||
authorizationInterceptors.setTokenAndAuthorityOidc(newToken: tokenOIDC, newConfig: oidcConfiguration);
|
||||
authorizationIsolateInterceptors.setTokenAndAuthorityOidc(newToken: tokenOIDC, newConfig: oidcConfiguration);
|
||||
|
||||
getOidcUserInfo(oidcConfiguration);
|
||||
if (_shouldCallUserInfo) {
|
||||
getOidcUserInfo(oidcConfiguration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool get _shouldCallUserInfo =>
|
||||
!PlatformInfo.isWeb || AppConfig.isSaasPlatForm;
|
||||
|
||||
void getSessionAction() {
|
||||
consumeState(getSessionInteractor.execute());
|
||||
}
|
||||
|
||||
@@ -77,7 +77,7 @@ class OIDCHttpClient {
|
||||
}
|
||||
|
||||
Future<OIDCDiscoveryResponse> discoverOIDC(OIDCConfiguration configuration) async {
|
||||
final result = await _dioClient.get(configuration.discoveryUrl);
|
||||
final result = await _dioClient.getWithNewDio(configuration.discoveryUrl);
|
||||
log('OIDCHttpClient::discoverOIDC(): RESULT: $result');
|
||||
if (result is Map<String, dynamic>) {
|
||||
return OIDCDiscoveryResponse.fromJson(result);
|
||||
|
||||
Reference in New Issue
Block a user