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);
|
Map<String, dynamic> getHeaders() => Map.from(_dio.options.headers);
|
||||||
|
|
||||||
|
Dio _createNewDio() => Dio()
|
||||||
|
..httpClientAdapter = _dio.httpClientAdapter;
|
||||||
|
|
||||||
Future<dynamic> get(
|
Future<dynamic> get(
|
||||||
String path, {
|
String path, {
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
@@ -32,6 +35,25 @@ class DioClient {
|
|||||||
.catchError((error) => throw error);
|
.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(
|
Future<dynamic> post(
|
||||||
String path, {
|
String path, {
|
||||||
data,
|
data,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import 'package:core/presentation/state/failure.dart';
|
import 'package:core/presentation/state/failure.dart';
|
||||||
import 'package:core/presentation/state/success.dart';
|
import 'package:core/presentation/state/success.dart';
|
||||||
import 'package:core/utils/app_logger.dart';
|
import 'package:core/utils/app_logger.dart';
|
||||||
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||||
import 'package:jmap_dart_client/jmap/core/capability/capability_identifier.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/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/error/capability_validator.dart';
|
||||||
import 'package:tmail_ui_user/main/exceptions/remote_exception.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 {
|
abstract class ReloadableController extends BaseController {
|
||||||
final GetSessionInteractor getSessionInteractor = Get.find<GetSessionInteractor>();
|
final GetSessionInteractor getSessionInteractor = Get.find<GetSessionInteractor>();
|
||||||
@@ -127,10 +129,15 @@ abstract class ReloadableController extends BaseController {
|
|||||||
authorizationInterceptors.setTokenAndAuthorityOidc(newToken: tokenOIDC, newConfig: oidcConfiguration);
|
authorizationInterceptors.setTokenAndAuthorityOidc(newToken: tokenOIDC, newConfig: oidcConfiguration);
|
||||||
authorizationIsolateInterceptors.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() {
|
void getSessionAction() {
|
||||||
consumeState(getSessionInteractor.execute());
|
consumeState(getSessionInteractor.execute());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class OIDCHttpClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<OIDCDiscoveryResponse> discoverOIDC(OIDCConfiguration configuration) async {
|
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');
|
log('OIDCHttpClient::discoverOIDC(): RESULT: $result');
|
||||||
if (result is Map<String, dynamic>) {
|
if (result is Map<String, dynamic>) {
|
||||||
return OIDCDiscoveryResponse.fromJson(result);
|
return OIDCDiscoveryResponse.fromJson(result);
|
||||||
|
|||||||
Reference in New Issue
Block a user