| File: FrameworkFork\System.ServiceModel\System\IdentityModel\Selectors\SecurityTokenProvider.cs | Web Access |
| Project: src\src\dotnet-svcutil\lib\src\dotnet-svcutil-lib.csproj (dotnet-svcutil-lib) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.IdentityModel.Tokens; using System.Runtime; using System.Threading; using System.Threading.Tasks; namespace System.IdentityModel.Selectors { public abstract class SecurityTokenProvider { protected SecurityTokenProvider() { } public virtual bool SupportsTokenRenewal { get { return false; } } public virtual bool SupportsTokenCancellation { get { return false; } } public async Task<SecurityToken> GetTokenAsync(CancellationToken cancellationToken) { SecurityToken token = await this.GetTokenCoreAsync(cancellationToken); if (token == null) { throw Fx.Exception.AsError(new SecurityTokenException(string.Format(SRServiceModel.TokenProviderUnableToGetToken, this))); } return token; } public async Task<SecurityToken> RenewTokenAsync(CancellationToken cancellationToken, SecurityToken tokenToBeRenewed) { if (tokenToBeRenewed == null) { throw Fx.Exception.ArgumentNull("tokenToBeRenewed"); } SecurityToken token = await this.RenewTokenCoreAsync(cancellationToken, tokenToBeRenewed); if (token == null) { throw Fx.Exception.AsError(new SecurityTokenException(string.Format(SRServiceModel.TokenProviderUnableToRenewToken, this))); } return token; } public async Task CancelTokenAsync(CancellationToken cancellationToken, SecurityToken securityToken) { if (securityToken == null) { throw Fx.Exception.ArgumentNull("token"); } await this.CancelTokenCoreAsync(cancellationToken, securityToken); } // protected methods protected abstract Task<SecurityToken> GetTokenCoreAsync(CancellationToken cancellationToken); protected virtual Task<SecurityToken> RenewTokenCoreAsync(CancellationToken cancellationToken, SecurityToken tokenToBeRenewed) { throw Fx.Exception.AsError(new NotSupportedException(string.Format(SRServiceModel.TokenRenewalNotSupported, this))); } protected virtual Task CancelTokenCoreAsync(CancellationToken cancellationToken, SecurityToken token) { throw Fx.Exception.AsError(new NotSupportedException(string.Format(SRServiceModel.TokenCancellationNotSupported, this))); } } }