public static ReadDiscoveryDocumentArgs FromDefault(TetraPakAuthConfig authConfig) { return(new ReadDiscoveryDocumentArgs { AuthConfig = authConfig, Logger = authConfig.Logger }); }
public static ReadDiscoveryDocumentArgs FromMasterSource( TetraPakAuthConfig authConfig, TimeSpan?timeout = null, ReadDocumentPolicy fallbackPolicy = ReadDocumentPolicy.All, string localCachePath = null) { return(new() { MasterSourceUrl = authConfig.DiscoveryDocumentUrl ?? throw new InvalidOperationException( "Cannot read discovery document from master source. " + "Configuration does not specify a URL for the discovery document"), Logger = authConfig.Logger, AuthConfig = authConfig, Timeout = timeout, Policy = fallbackPolicy, LocalCachePath = string.IsNullOrWhiteSpace(localCachePath) ? defaultLocalCachePath() : localCachePath }); }
/// <summary> /// Tries obtaining an access token from the request. /// </summary> /// <returns> /// An <see cref="Outcome{T}"/> instance indicating success/failure. On success the outcome /// holds the access token in its <see cref="Outcome{T}.Value"/> property. On failure the outcome /// declares the problem via its <see cref="Outcome.Exception"/> property. /// </returns> /// <seealso cref="GetAccessToken(Microsoft.AspNetCore.Http.HttpRequest, TetraPakAuthConfig)"/> /// <see cref="GetAccessTokenAsync(Microsoft.AspNetCore.Http.HttpContext, TetraPakAuthConfig)"/> public static Task <Outcome <ActorToken> > GetAccessTokenAsync(this HttpRequest self, TetraPakAuthConfig authConfig) => self.HttpContext.GetAccessTokenAsync(authConfig);
/// <summary> /// Tries obtaining an access token from the request. /// </summary> /// <returns> /// An <see cref="Outcome{T}"/> instance indicating success/failure. On success the outcome /// holds the access token in its <see cref="Outcome{T}.Value"/> property. On failure the outcome /// declares the problem via its <see cref="Outcome.Exception"/> property. /// </returns> /// <seealso cref="GetAccessToken(Microsoft.AspNetCore.Http.HttpContext, TetraPakAuthConfig)"/> /// <see cref="GetAccessTokenAsync(Microsoft.AspNetCore.Http.HttpRequest, TetraPakAuthConfig)"/> public static Task <Outcome <ActorToken> > GetAccessTokenAsync(this HttpContext self, TetraPakAuthConfig authConfig) { if (self.Items.TryGetValue(AmbientData.Keys.AccessToken, out var o) && o is string s && ActorToken.TryParse(s, out var actorToken)) { return(Task.FromResult(Outcome <ActorToken> .Success(actorToken))); } var headerIdent = authConfig?.AuthorizationHeader ?? HeaderNames.Authorization; s = self.Request.Headers[headerIdent].FirstOrDefault(); if (s is {} && ActorToken.TryParse(s, out actorToken))
/// <summary> /// Returns the request access token, or <c>null</c> if unavailable. /// </summary> /// <returns> /// An <see cref="ActorToken"/> instance representing the request's access token if one can be obtained; /// otherwise <c>null</c>. /// </returns> /// <seealso cref="GetAccessToken(Microsoft.AspNetCore.Http.HttpContext, TetraPakAuthConfig)"/> /// <see cref="GetAccessTokenAsync(Microsoft.AspNetCore.Http.HttpRequest, TetraPakAuthConfig)"/> public static ActorToken GetAccessToken(this HttpRequest self, TetraPakAuthConfig authConfig) => self.HttpContext.GetAccessToken(authConfig);
/// <summary> /// Returns the request access token, or <c>null</c> if unavailable. /// </summary> /// <returns> /// An <see cref="ActorToken"/> instance representing the request's access token if one can be obtained; /// otherwise <c>null</c>. /// </returns> /// <seealso cref="GetAccessToken(Microsoft.AspNetCore.Http.HttpRequest, TetraPakAuthConfig)"/> /// <see cref="GetAccessTokenAsync(Microsoft.AspNetCore.Http.HttpContext, TetraPakAuthConfig)"/> public static ActorToken GetAccessToken(this HttpContext self, TetraPakAuthConfig authConfig) { var task = GetAccessTokenAsync(self, authConfig); return(task.ConfigureAwait(false).GetAwaiter().GetResult()); }
public TetraPakUserInformation(TetraPakAuthConfig authConfig) { _authConfig = authConfig; }
// public Outcome<ActorToken> GetAccessToken() // { // return _httpContextAccessor.HttpContext.GetAccessToken(); // // return _httpContextAccessor.HttpContext.Items.TryGetValue(Keys.AccessToken, out var obj) && obj is string token obsolete // // ? Outcome<string>.Success(token) // // : Outcome<string>.Fail(new ArgumentOutOfRangeException()); // } public Task <Outcome <ActorToken> > GetIdTokenAsync(TetraPakAuthConfig authConfig) => _httpContextAccessor.HttpContext.GetIdTokenAsync(authConfig);
public HomeController(ILogger <HomeController> logger, TetraPakAuthConfig authConfig) { _logger = logger; _authConfig = authConfig; }
internal void Initialize(TetraPakAuthConfig authConfig) => AuthConfig = authConfig;
public RefreshTokenArgs(TetraPakAuthConfig authConfig) { _authConfig = authConfig; }