TF-571 Use response from webfinger to get OIDC from authority
This commit is contained in:
committed by
Dat H. Pham
parent
ea598c20b8
commit
a48cd35d4f
@@ -2,9 +2,9 @@
|
||||
import 'package:model/model.dart';
|
||||
|
||||
abstract class AuthenticationOIDCRepository {
|
||||
Future<bool> checkOIDCIsAvailable(OIDCRequest oidcRequest);
|
||||
Future<OIDCResponse> checkOIDCIsAvailable(OIDCRequest oidcRequest);
|
||||
|
||||
Future<OIDCConfiguration> getOIDCConfiguration(Uri baseUri);
|
||||
Future<OIDCConfiguration> getOIDCConfiguration(Uri baseUri, OIDCResponse oidcResponse);
|
||||
|
||||
Future<TokenOIDC> getTokenOIDC(String clientId, String redirectUrl, String discoveryUrl, List<String> scopes);
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:model/oidc/response/oidc_response.dart';
|
||||
|
||||
class CheckOIDCIsAvailableSuccess extends UIState {
|
||||
final OIDCResponse oidcResponse;
|
||||
|
||||
CheckOIDCIsAvailableSuccess();
|
||||
CheckOIDCIsAvailableSuccess(this.oidcResponse);
|
||||
|
||||
@override
|
||||
List<Object> get props => [];
|
||||
List<Object> get props => [oidcResponse];
|
||||
}
|
||||
|
||||
class CheckOIDCIsAvailableFailure extends FeatureFailure {
|
||||
|
||||
@@ -13,9 +13,7 @@ class CheckOIDCIsAvailableInteractor {
|
||||
try {
|
||||
final result = await _oidcRepository.checkOIDCIsAvailable(oidcRequest);
|
||||
log('CheckOIDCIsAvailableInteractor::execute(): result: $result');
|
||||
return result
|
||||
? Right<Failure, Success>(CheckOIDCIsAvailableSuccess())
|
||||
: Left<Failure, Success>(CheckOIDCIsAvailableFailure(null));
|
||||
return Right<Failure, Success>(CheckOIDCIsAvailableSuccess(result));
|
||||
} catch (e) {
|
||||
log('CheckOIDCIsAvailableInteractor::execute(): ERROR: $e');
|
||||
return Left<Failure, Success>(CheckOIDCIsAvailableFailure(e));
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:dartz/dartz.dart';
|
||||
import 'package:model/model.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/repository/authentication_oidc_repository.dart';
|
||||
import 'package:tmail_ui_user/features/login/domain/state/get_oidc_configuration_state.dart';
|
||||
|
||||
@@ -8,9 +9,9 @@ class GetOIDCConfigurationInteractor {
|
||||
|
||||
GetOIDCConfigurationInteractor(this._oidcRepository);
|
||||
|
||||
Future<Either<Failure, Success>> execute(Uri baseUri) async {
|
||||
Future<Either<Failure, Success>> execute(Uri baseUri, OIDCResponse oidcResponse) async {
|
||||
try {
|
||||
final oidcConfiguration = await _oidcRepository.getOIDCConfiguration(baseUri);
|
||||
final oidcConfiguration = await _oidcRepository.getOIDCConfiguration(baseUri, oidcResponse);
|
||||
log('GetOIDCConfigurationInteractor::execute(): oidcConfiguration: $oidcConfiguration');
|
||||
return Right<Failure, Success>(GetOIDCConfigurationSuccess(oidcConfiguration));
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user