Example #1
0
        public AuthorizationResponse GetAuthorizationResponse(string authorizationRequestId)
        {
            AdvancedAuthorizationResponse advancedAuthResponse = GetAdvancedAuthorizationResponse(authorizationRequestId);

            if (advancedAuthResponse != null)
            {
                AuthPolicy authPolicy = GetAuthPolicyFromAuthResponsePolicy(advancedAuthResponse.Policy);

                return(new AuthorizationResponse(
                           authorizationRequestId: advancedAuthResponse.AuthorizationRequestId,
                           authorized: advancedAuthResponse.Authorized,
                           serviceUserHash: advancedAuthResponse.ServiceUserHash,
                           organizationUserHash: advancedAuthResponse.OrganizationUserHash,
                           userPushId: advancedAuthResponse.UserPushId,
                           deviceId: advancedAuthResponse.DeviceId,
                           devicePins: advancedAuthResponse.DevicePins,
                           type: advancedAuthResponse.Type,
                           reason: advancedAuthResponse.Reason,
                           denialReason: advancedAuthResponse.DenialReason,
                           fraud: advancedAuthResponse.Fraud,
                           authPolicy: authPolicy,
                           authMethods: advancedAuthResponse.AuthMethods
                           ));
            }
            else
            {
                return(null);
            }
        }
        public AdvancedAuthorizationResponse GetAdvancedAuthorizationResponse(string authId)
        {
            AdvancedAuthorizationResponse authResponse = GetServiceClientForCurrentService().GetAdvancedAuthorizationResponse(authId);

            _lastAdvancedAuthorizationResponse = authResponse;
            return(authResponse);
        }
Example #3
0
        public IWebhookPackage HandleAdvancedWebhook(Dictionary <string, List <string> > headers, string body, string method = null, string path = null)
        {
            IServerSentEvent serverSentEvent = _transport.HandleServerSentEvent(headers, body, method, path);

            if (serverSentEvent is ServerSentEventAuthorizationResponse)
            {
                ServerSentEventAuthorizationResponse authEvent = (ServerSentEventAuthorizationResponse)serverSentEvent;

                AdvancedAuthorizationResponse advancedAuthorizationResponse = ParseAuthsGetToAdvancedAuthorizationPackage(authEvent);

                return(new AdvancedAuthorizationResponseWebhookPackage(
                           advancedAuthorizationResponse
                           ));
            }

            if (serverSentEvent is ServerSentEventUserServiceSessionEnd)
            {
                var sessionEvent = (ServerSentEventUserServiceSessionEnd)serverSentEvent;
                return(new ServiceUserSessionEndWebhookPackage(
                           sessionEvent.UserHash,
                           sessionEvent.ApiTime
                           ));
            }

            throw new InvalidRequestException("Unknown response type");
        }
Example #4
0
        public IWebhookPackage HandleWebhook(Dictionary <string, List <string> > headers, string body, string method = null, string path = null)
        {
            var webhookPackage = HandleAdvancedWebhook(headers, body, method, path);

            if (webhookPackage is ServiceUserSessionEndWebhookPackage)
            {
                return(webhookPackage);
            }
            else if (webhookPackage is AdvancedAuthorizationResponseWebhookPackage)
            {
                AdvancedAuthorizationResponse advancedAuthorizationResponse = ((AdvancedAuthorizationResponseWebhookPackage)webhookPackage).AdvancedAuthorizationResponse;
                AuthPolicy authPolicy = GetAuthPolicyFromAuthResponsePolicy(advancedAuthorizationResponse.Policy);

                return(new AuthorizationResponseWebhookPackage(
                           new AuthorizationResponse(
                               authorizationRequestId: advancedAuthorizationResponse.AuthorizationRequestId,
                               authorized: advancedAuthorizationResponse.Authorized,
                               serviceUserHash: advancedAuthorizationResponse.ServiceUserHash,
                               organizationUserHash: advancedAuthorizationResponse.OrganizationUserHash,
                               userPushId: advancedAuthorizationResponse.UserPushId,
                               deviceId: advancedAuthorizationResponse.DeviceId,
                               devicePins: advancedAuthorizationResponse.DevicePins,
                               type: advancedAuthorizationResponse.Type,
                               reason: advancedAuthorizationResponse.Reason,
                               denialReason: advancedAuthorizationResponse.DenialReason,
                               fraud: advancedAuthorizationResponse.Fraud,
                               authPolicy: authPolicy,
                               authMethods: advancedAuthorizationResponse.AuthMethods
                               )
                           ));
            }

            throw new InvalidRequestException("Unknown response type");
        }
 public void WhenIGetTheResponseForTheAdvancedAuthRequest()
 {
     string authRequestID = _directoryServiceClientContext._lastAuthorizationRequest.Id;
     AdvancedAuthorizationResponse authResponse = _directoryServiceClientContext.GetAdvancedAuthorizationResponse(authRequestID);
 }
Example #6
0
 public AdvancedAuthorizationResponseWebhookPackage(AdvancedAuthorizationResponse authorizationResponse)
 {
     AdvancedAuthorizationResponse = authorizationResponse;
 }
Example #7
0
        private static void PrintAdvancedAuthorizationResponse(AdvancedAuthorizationResponse authResponse)
        {
            Console.WriteLine($"Auth response was:");
            Console.WriteLine($"    Authorized:     {authResponse.Authorized}");
            Console.WriteLine($"    Type:           {PrintNull(authResponse.Type)}");
            Console.WriteLine($"    Reason:         {PrintNull(authResponse.Reason)}");
            Console.WriteLine($"    Denial Reason:  {PrintNull(authResponse.DenialReason)}");
            Console.WriteLine($"    Fraud:          {authResponse.Fraud}");
            Console.WriteLine($"    Auth Request:   {authResponse.AuthorizationRequestId}");
            Console.WriteLine($"    Device Pins:    {String.Join(", ", authResponse.DevicePins)}");
            Console.WriteLine($"    Org User Hash:  {authResponse.OrganizationUserHash}");
            Console.WriteLine($"    Svc User Hash:  {authResponse.ServiceUserHash}");
            Console.WriteLine($"    User Push ID:   {authResponse.UserPushId}");
            Console.WriteLine($"    Device ID:      {authResponse.DeviceId}");

            if (authResponse.Policy == null)
            {
                Console.WriteLine($"    AuthResponse: None");
            }
            else
            {
                Console.WriteLine($"    AuthPolicy:");
                Console.WriteLine($"       Requirement:       {PrintNull(authResponse.Policy.Requirement.ToString())}");
                Console.WriteLine($"       Amount:            {PrintNull(authResponse.Policy.Amount)}");
                Console.WriteLine($"       RequiredKnowledge: {PrintNull(authResponse.Policy.KnowledgeRequired)}");
                Console.WriteLine($"       RequiredInherence: {PrintNull(authResponse.Policy.InherenceRequired)}");
                Console.WriteLine($"       RequiredPosession: {PrintNull(authResponse.Policy.PossessionRequired)}");

                if (authResponse.Policy.Fences.Count > 0)
                {
                    Console.WriteLine($"       Fence Count: {String.Join(", ", authResponse.Policy.Fences.Count)}");
                    Console.WriteLine($"       Fences:");
                    foreach (IFence item in authResponse.Policy.Fences)
                    {
                        if (item is TerritoryFence)
                        {
                            Console.WriteLine($"          Type:       TerritoryFence");
                            Console.WriteLine($"          AdminArea:  {PrintNull(((TerritoryFence)item).AdministrativeArea)}");
                            Console.WriteLine($"          Country:    {PrintNull(((TerritoryFence)item).Country)}");
                            Console.WriteLine($"          Name:       {PrintNull(((TerritoryFence)item).Name)}");
                            Console.WriteLine($"          PostalCode: {PrintNull(((TerritoryFence)item).PostalCode)}");
                        }
                        else if (item is GeoCircleFence)
                        {
                            Console.WriteLine($"          Type:      GeoCircleFence");
                            Console.WriteLine($"          Latitude:  {PrintNull(((GeoCircleFence)item).Latitude)}");
                            Console.WriteLine($"          Longitude: {PrintNull(((GeoCircleFence)item).Longitude)}");
                            Console.WriteLine($"          Radius:    {PrintNull(((GeoCircleFence)item).Radius)}");
                            Console.WriteLine($"          Name:      {PrintNull(((GeoCircleFence)item).Name)} \n");
                        }
                    }
                }
                else
                {
                    Console.WriteLine($"       Geofences: None");
                }
            }

            if (authResponse.AuthMethods == null)
            {
                Console.WriteLine($"    Auth Methods: None");
            }
            else
            {
                Console.WriteLine($"    Auth Methods:");
                foreach (var item in authResponse.AuthMethods)
                {
                    Console.WriteLine($"       Auth Method: {PrintNull(item.Method)}");
                    Console.WriteLine($"          Set: {PrintNull(item.Set)}");
                    Console.WriteLine($"          Active: {PrintNull(item.Active)}");
                    Console.WriteLine($"          Allowed: {PrintNull(item.Allowed)}");
                    Console.WriteLine($"          Supported: {PrintNull(item.Supported)}");
                    Console.WriteLine($"          User Required: {PrintNull(item.UserRequired)}");
                    Console.WriteLine($"          Passed: {PrintNull(item.Passed)}");
                    Console.WriteLine($"          Error: {PrintNull(item.Error)}");
                }
            }
        }