Example #1
0
        public override K ResolveRequest(T request, string platform, ApiServiceName serviceName)
        {
            //TODO herencia
            //   BeginResolveRequest(request, ref platform, serviceName);

            IServiceProvider serviceImpl;

            if (platform.Equals("1"))
            {
                serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Kinacu, serviceName);
            }
            else if (platform.Equals("2"))
            {
                serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Utiba, serviceName);
            }
            else
            {
                throw new Exception("Problemas identificando el platform");
            }
            //else
            //{
            //    if ((defaultPlatform ?? "0") == "2")
            //        serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Kinacu, serviceName);
            //    else
            //        serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Utiba, serviceName);
            //}

            SecureProvider secureprovider = new SecureProvider(_securemode, serviceImpl, typeof(K), platform);

            return((K)secureprovider.PerformOperation(request));
        }
Example #2
0
        /// <summary>
        /// Ejecuta la validacion del cokie monster ,  en caso de ser correcta
        /// continua con el despliegue del componente
        /// </summary>
        /// <param name="request"></param>
        /// <param name="platform"></param>
        /// <param name="serviceName"></param>
        /// <returns></returns>
        public K ResolveRequestService(T request, string platform, ApiServiceName serviceName)
        {
            // llamar a la validacion de seguridad del api


            //


            String cadena = "This is an object in session";

            HttpContext.Current.Session.Add("MYOBJECT", cadena);

            K result = default(K);


            if (ApiConfiguration.API_SECURE_OPTIMIZATION)
            {
                result = ResolveSecureRequest(request, platform, serviceName);
            }
            else
            {
                result = ResolveRequest(request, platform, serviceName);
            }

            HttpContext.Current.Session.Clear();

            return(result);
        }
Example #3
0
        //Crea el componente que implmente una ejecucion segura y la invoca
        private K ResolveSecureRequest(T request, ApiTargetPlatform targetPlatform, ApiServiceName serviceName)
        {
            //bandera para determinar si hubo error de la clase
            bool opok = false;

            try
            {
                if (ConfigurationManager.AppSettings["ProcessMigration"].ToLower() == "true")
                {
                    if (request.AuthenticationData != null)
                    {
                        if (GetCustomDefaultPlatform(request.AuthenticationData.Username) == "1")
                        {
                            targetPlatform = ApiTargetPlatform.Kinacu;
                        }
                    }
                }

                if (HttpContext.Current.Session != null)
                {
                    if (HttpContext.Current.Session["LOG_PREFIX"] == null)
                    {
                        HttpContext.Current.Session.Add("LOG_PREFIX", "[" + new Random(DateTime.Now.Millisecond * 9).Next(100000000, 999999999) + "] [" + serviceName.ToString() + "] ");
                    }
                }

                ISecureServiceProvider serviceImpl = ServiceProviderFactory.GetServiceProviderSecure(targetPlatform, serviceName);

                //se pudo ejecutar hasta este punto el codigo
                opok = true;

                return((K)serviceImpl.PerformSecureOperation(request));
            }

            catch (Exception ex)
            {
                K resultError = Reflection.FactoryObject <K>();
                resultError.ResponseCode = UtilResut.ResponseCode(ex);

                if (ex.Message.IndexOf("[API UNEXCEPTED ERROR]", StringComparison.Ordinal) < 0)
                {
                    resultError.ResponseMessage = String.Concat("[API UNEXCEPTED ERROR]-[", ex.Message, "]");
                }
                else
                {
                    resultError.ResponseMessage = ex.Message;
                }

                //si es un error interno del la clase se debe
                if (!opok)
                {
                    logger.Fatal(String.Concat(resultError.ResponseCode, "-", resultError.ResponseMessage, "-", ex.StackTrace), ex);
                }

                return(resultError);
            }
        }
Example #4
0
 /// <summary>
 /// Ejecuta la validacion del cokie monster ,  en caso de ser correcta
 /// continua con el despliegue del componente
 /// </summary>
 /// <param name="request"></param>
 /// <param name="targetPlatform"></param>
 /// <param name="serviceName"></param>
 /// <returns></returns>
 public K ResolveRequestService(T request, ApiTargetPlatform targetPlatform, ApiServiceName serviceName)
 {
     // llamar a la validacion de seguridad del api
     //
     if (ApiConfiguration.API_SECURE_OPTIMIZATION)
     {
         return(ResolveSecureRequest(request, targetPlatform, serviceName));
     }
     else
     {
         return(ResolveRequest(request, targetPlatform, serviceName));
     }
 }
        public static ISecureServiceProvider GetServiceProviderSecure(ApiTargetPlatform targetPlatform, ApiServiceName serviceName)
        {
            ISecureServiceProvider serviceProviderImpl = null;

            if (_registeredProviders.ContainsKey(targetPlatform))
            {
                var registeredServicerForPlatform = _registeredProviders[targetPlatform];
                if (registeredServicerForPlatform.ContainsKey(serviceName))
                {
                    Type providerType = registeredServicerForPlatform[serviceName];
                    serviceProviderImpl = (ISecureServiceProvider)Activator.CreateInstance(providerType);
                }
            }
            return(serviceProviderImpl);
        }
        public static void RegisterServiceProviderClass(ApiTargetPlatform targetPlatform, ApiServiceName serviceName, Type implementingType)
        {
            Dictionary <ApiServiceName, Type> platformList;

            if (_registeredProviders.ContainsKey(targetPlatform))
            {
                platformList = _registeredProviders[targetPlatform];
            }
            else
            {
                platformList = new Dictionary <ApiServiceName, Type>();
                _registeredProviders.Add(targetPlatform, platformList);
            }
            platformList.Add(serviceName, implementingType);
        }
Example #7
0
        public override K ResolveRequest(T request, ApiTargetPlatform targetPlatform, ApiServiceName serviceName)
        {
            //TODO herencia
            // BeginResolveRequest(request, ref targetPlatform, serviceName);

            IServiceProvider serviceImpl = ServiceProviderFactory.GetServiceProvider(targetPlatform, serviceName);

            SecureProvider secureprovider = new SecureProvider(_securemode, serviceImpl, typeof(K), targetPlatform);

            return((K)secureprovider.PerformOperation(request));
        }
Example #8
0
        //Inicializa el componente y lo ejecuta
        public K ResolveRequest(T request, string platform, ApiServiceName serviceName)
        {
            //bandera para determinar si hubo error de la clase
            bool opok = false;

            try
            {
                //string defaultPlatform = ConfigurationManager.AppSettings["DefaultPlatform"];

                if (ConfigurationManager.AppSettings["ProcessMigration"].ToLower() == "true")
                {
                    string customDefault = GetCustomDefaultPlatform(request.AuthenticationData.Username);
                    if (customDefault != "0")
                    {
                        platform = customDefault;
                    }
                }

                platform = (platform.ToLower().Equals("kinacu") ? "1" : (platform.ToLower().Equals("utiba") ? "2" : platform.ToLower()));

                if (HttpContext.Current.Session != null)
                {
                    if (HttpContext.Current.Session["LOG_PREFIX"] == null)
                    {
                        HttpContext.Current.Session.Add("LOG_PREFIX", "[" + new Random(DateTime.Now.Millisecond * 9).Next(100000000, 999999999) + "] [" + serviceName.ToString() + "] ");
                    }
                }

                IServiceProvider serviceImpl;
                if (platform.Equals("1"))
                {
                    serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Kinacu, serviceName);
                }
                else if (platform.Equals("2"))
                {
                    serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Utiba, serviceName);
                }
                else
                {
                    throw new Exception("Problemas identificando el platform");
                }
                //else
                //{
                //    if ((defaultPlatform ?? "0") == "2")
                //        serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Kinacu, serviceName);
                //    else
                //        serviceImpl = ServiceProviderFactory.GetServiceProvider(ApiTargetPlatform.Utiba, serviceName);
                //}

                //se pudo ejecutar hasta este punto el codigo
                opok = true;
                return((K)serviceImpl.PerformOperation(request));
            }
            catch (Exception ex)
            {
                K resultError = Reflection.FactoryObject <K>();

                resultError.ResponseCode = UtilResut.ResponseCode(ex);
                if (ex.Message.IndexOf("[API UNEXCEPTED ERROR]", StringComparison.Ordinal) < 0)
                {
                    resultError.ResponseMessage = String.Concat("[API UNEXCEPTED ERROR]-[", ex.Message, "]");
                }
                else
                {
                    resultError.ResponseMessage = ex.Message;
                }

                if (!opok)
                {
                    logger.Fatal(String.Concat(resultError.ResponseCode, "-", resultError.ResponseMessage, "-", ex.StackTrace), ex);
                }

                return(resultError);
            }
        }