< Summary - CoreWCF Coverage — PR #1766

Information
Class: CoreWCF.Security.Tokens.SecurityContextSecurityTokenAuthenticator
Assembly: CoreWCF.Primitives
File(s): /home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SecurityContextSecurityTokenAuthenticator.cs
Line coverage
20%
Covered lines: 2
Uncovered lines: 8
Coverable lines: 10
Total lines: 46
Line coverage: 20%
Branch coverage
0%
Covered branches: 0
Total branches: 8
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()100%11100%
CanValidateTokenCore(...)100%110%
ValidateTokenCoreAsync(...)0%220%
ThrowExpiredContextFaultException(...)0%220%
IsTimeValid(...)0%440%

File(s)

/home/runner/work/CoreWCF/CoreWCF/src/CoreWCF.Primitives/src/CoreWCF/Security/SecurityContextSecurityTokenAuthenticator.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;
 5using System.Collections.ObjectModel;
 6using System.Threading.Tasks;
 7using System.Xml;
 8using CoreWCF.IdentityModel.Policy;
 9using CoreWCF.IdentityModel.Selectors;
 10using CoreWCF.IdentityModel.Tokens;
 11
 12namespace CoreWCF.Security.Tokens
 13{
 14    public class SecurityContextSecurityTokenAuthenticator : SecurityTokenAuthenticator
 15    {
 2216        public SecurityContextSecurityTokenAuthenticator() : base()
 2217        { }
 18
 19        protected override bool CanValidateTokenCore(SecurityToken token)
 20        {
 021            return (token is SecurityContextSecurityToken);
 22        }
 23
 24        protected override ValueTask<ReadOnlyCollection<IAuthorizationPolicy>> ValidateTokenCoreAsync(SecurityToken toke
 25        {
 026            SecurityContextSecurityToken sct = (SecurityContextSecurityToken)token;
 027            if (!IsTimeValid(sct))
 28            {
 029                ThrowExpiredContextFaultException(sct.ContextId, sct);
 30            }
 31
 032            return new ValueTask<ReadOnlyCollection<IAuthorizationPolicy>>(sct.AuthorizationPolicies);
 33        }
 34
 35        private void ThrowExpiredContextFaultException(UniqueId contextId, SecurityContextSecurityToken sct)
 36        {
 037            throw DiagnosticUtility.ExceptionUtility.ThrowHelperWarning(new Exception(SR.Format(SR.SecurityContextExpire
 38        }
 39
 40        private bool IsTimeValid(SecurityContextSecurityToken sct)
 41        {
 042            DateTime utcNow = DateTime.UtcNow;
 043            return (sct.ValidFrom <= utcNow && sct.ValidTo >= utcNow && sct.KeyEffectiveTime <= utcNow);
 44        }
 45    }
 46}