< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Security.WrappedUserNameSecurityTokenAuthenticator
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/WrappedUserNameSecurityTokenAuthenticator.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 15
Coverable lines: 15
Total lines: 70
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)0%440%
ValidateTokenCoreAsync(...)0%220%
ValidateUserNamePasswordCoreAsync(...)100%110%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/WrappedUserNameSecurityTokenAuthenticator.cs

#LineLine coverage
 1// Licensed to the .NET Foundation under one or more agreements.
 2// The .NET Foundation licenses this file to you under the MIT license.
 3
 4using System.Collections.Generic;
 5using System.Collections.ObjectModel;
 6using CoreWCF.IdentityModel.Policy;
 7using CoreWCF.IdentityModel.Selectors;
 8using CoreWCF.IdentityModel.Tokens;
 9using System.Security.Claims;
 10using System;
 11using System.Threading.Tasks;
 12
 13namespace CoreWCF.Security
 14{
 15    /// <summary>
 16    /// Wraps a UserNameSecurityTokenHandler. Delegates the token authentication call to
 17    /// this wrapped tokenAuthenticator. Wraps the returned ClaimsIdentities into
 18    /// an IAuthorizationPolicy.
 19    /// </summary>
 20    internal class WrappedUserNameSecurityTokenAuthenticator : UserNameSecurityTokenAuthenticator
 21    {
 22        private readonly UserNameSecurityTokenHandler _wrappedUserNameSecurityTokenHandler;
 23        private readonly ExceptionMapper _exceptionMapper;
 24
 25        /// <summary>
 26        /// Initializes an instance of <see cref="WrappedUserNameSecurityTokenAuthenticator"/>
 27        /// </summary>
 28        /// <param name="wrappedUserNameSecurityTokenHandler">The UserNameSecurityTokenHandler to wrap.</param>
 29        /// <param name="exceptionMapper">Converts token validation exceptions to SOAP faults.</param>
 30        public WrappedUserNameSecurityTokenAuthenticator(
 31            UserNameSecurityTokenHandler wrappedUserNameSecurityTokenHandler,
 32            ExceptionMapper exceptionMapper)
 033            : base()
 34        {
 035            _wrappedUserNameSecurityTokenHandler = wrappedUserNameSecurityTokenHandler ?? throw DiagnosticUtility.Except
 036            _exceptionMapper = exceptionMapper ?? throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameo
 037        }
 38
 39        /// <summary>
 40        /// Validates the token using the wrapped token handler and generates IAuthorizationPolicy
 41        /// wrapping the returned ClaimsIdentities.
 42        /// </summary>
 43        /// <param name="token">Token to be validated.</param>
 44        /// <returns>Read-only collection of IAuthorizationPolicy</returns>
 45        protected override ValueTask<ReadOnlyCollection<IAuthorizationPolicy>> ValidateTokenCoreAsync(SecurityToken toke
 46        {
 047            ReadOnlyCollection<ClaimsIdentity> identities = null;
 48            try
 49            {
 050                identities = _wrappedUserNameSecurityTokenHandler.ValidateToken(token);
 051            }
 052            catch (Exception ex)
 53            {
 054                if (!_exceptionMapper.HandleSecurityTokenProcessingException(ex))
 55                {
 056                    throw;
 57                }
 058            }
 59
 060            List<IAuthorizationPolicy> policies = new List<IAuthorizationPolicy>(1);
 061            policies.Add(new AuthorizationPolicy(identities));
 062            return new ValueTask<ReadOnlyCollection<IAuthorizationPolicy>>(policies.AsReadOnly());
 63        }
 64
 65        protected override ValueTask<ReadOnlyCollection<IAuthorizationPolicy>> ValidateUserNamePasswordCoreAsync(string 
 66        {
 067            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotImplementedException(SR.Format(SR.ID4008, "
 68        }
 69    }
 70}