< Summary

Class:SVETA.Api.Helpers.Authorize.CustomTokenRetriever
Assembly:SVETA.Api
File(s):/opt/dev/sveta_api_build/SVETA.Api/Helpers/Authorize/CustomTokenRetriever.cs
Covered lines:0
Uncovered lines:22
Coverable lines:22
Total lines:46
Line coverage:0% (0 of 22)
Covered branches:0
Total branches:8
Branch coverage:0% (0 of 8)

Metrics

MethodLine coverage Branch coverage
get_AuthHeaderTokenRetriever()0%100%
get_QueryStringTokenRetriever()0%100%
.cctor()0%100%
FromHeaderAndQueryString(...)0%0%

File(s)

/opt/dev/sveta_api_build/SVETA.Api/Helpers/Authorize/CustomTokenRetriever.cs

#LineLine coverage
 1    using System;
 2using IdentityModel.AspNetCore.OAuth2Introspection;
 3using Microsoft.AspNetCore.Http;
 4using Microsoft.Extensions.Primitives;
 5
 6namespace SVETA.Api.Helpers.Authorize
 7{
 8    public class CustomTokenRetriever
 9    {
 10        internal const string TokenItemsKey = "idsrv4:tokenvalidation:token";
 11        // custom token key change it to the one you use for sending the access_token to the server
 12        // during websocket handshake
 13        internal const string SignalRTokenKey = "access_token";
 14
 015        static Func<HttpRequest, string> AuthHeaderTokenRetriever { get; set; }
 016        static Func<HttpRequest, string> QueryStringTokenRetriever { get; set; }
 17
 18        static CustomTokenRetriever()
 019        {
 020            AuthHeaderTokenRetriever = TokenRetrieval.FromAuthorizationHeader();
 021            QueryStringTokenRetriever = TokenRetrieval.FromQueryString();
 022        }
 23
 24        public static string FromHeaderAndQueryString(HttpRequest request)
 025        {
 026            var token = AuthHeaderTokenRetriever(request);
 27
 028            if (string.IsNullOrEmpty(token))
 029            {
 030                token = QueryStringTokenRetriever(request);
 031            }
 32
 033            if (string.IsNullOrEmpty(token))
 034            {
 035                token = request.HttpContext.Items[TokenItemsKey] as string;
 036            }
 37
 038            if (string.IsNullOrEmpty(token) && request.Query.TryGetValue(SignalRTokenKey, out StringValues extract))
 039            {
 040                token = extract.ToString();
 041            }
 42
 043            return token;
 044        }
 45    }
 46}