Exemplo n.º 1
0
        public TimeAccessControl(ServerLocalConfig config)
        {
            this.localConfig = config;

            System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType());
            basePath = Path.GetDirectoryName(asm.Location);
        }
Exemplo n.º 2
0
        public RegistryImporter(ServerLocalConfig config)
        {
            this.localConfig = config;

            System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType());
            basePath = Path.GetDirectoryName(asm.Location);

            Taskbar.TaskbarProgress.SetProgressState(Taskbar.TaskbarProgressState.NoProgress);

            if (config.EngineMaxThreads > 0)
            {
                this.maxThreads = config.EngineMaxThreads;
            }
        }
Exemplo n.º 3
0
        protected override void OnStart(string[] args)
        {
            /*************
             * Carrega configurações
             */

            System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType());
            basePath = Path.GetDirectoryName(asm.Location);

            localConfig = new ServerLocalConfig();
            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }


            Int32 cnt      = 0;
            Int32 stepWait = 15000;

            while (cnt <= 10)
            {
                try
                {
                    IAMDatabase db = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);
                    db.openDB();

                    db.ServiceStart("Report", null);

                    db.closeDB();

                    break;
                }
                catch (Exception ex)
                {
                    if (cnt < 10)
                    {
                        TextLog.Log("Report", "Falha ao acessar o banco de dados: " + ex.Message);
                        Thread.Sleep(stepWait);
                        stepWait = stepWait * 2;
                        cnt++;
                    }
                    else
                    {
                        StopOnError("Falha ao acessar o banco de dados", ex);
                    }
                }
            }


            /*************
             * Inicia timer que processa os arquivos
             */

            reportTimer = new Timer(new TimerCallback(ReportTimer), null, 1000, 60000);
            statusTimer = new Timer(new TimerCallback(TmrServiceStatusCallback), null, 100, 10000);
        }
Exemplo n.º 4
0
        protected override void OnStart(string[] args)
        {
            /*************
             * Carrega configurações
             */

            localConfig = new ServerLocalConfig();
            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }

            Int32 cnt      = 0;
            Int32 stepWait = 15000;

            while (cnt <= 10)
            {
                try
                {
                    IAMDatabase db = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);
                    db.openDB();

                    db.ServiceStart("Engine", null);

                    db.closeDB();

                    break;
                }
                catch (Exception ex)
                {
                    if (cnt < 10)
                    {
                        TextLog.Log("Engine", "Falha ao acessar o banco de dados: " + ex.Message);
                        Thread.Sleep(stepWait);
                        stepWait = stepWait * 2;
                        cnt++;
                    }
                    else
                    {
                        StopOnError("Falha ao acessar o banco de dados", ex);
                    }
                }
            }



            /*************
             * Gera os certificados do servidor
             * Verifica se o certificade está próximo de vencer
             */
            IAMDatabase db2 = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);

            db2.openDB();
            ServerKey2 sk = new ServerKey2(db2.Connection);

            TimeSpan ts = sk.ServerCert.NotAfter - DateTime.Now;

            if (ts.TotalDays < 360)
            {
                //Inicia o timer que ficará gerando evento
                licTimer = new Timer(new TimerCallback(LicTimer), null, 200, 86400000); //a cada 24 Horas caso este processo não for reiniciado
            }

            db2.closeDB();


            intoTimer = new Timer(new TimerCallback(InfoTimer), null, 200, 900); //a cada 15 minutos

            /*************
             * Inicia as classes de processamento
             */

            RegistryImporter imp = new RegistryImporter(localConfig);

            imp.Start();

            TimeAccessControl acl = new TimeAccessControl(localConfig);

            acl.Start();
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            ServerLocalConfig localConfig;

            /*************
             * Carrega configurações
             */

            localConfig = new ServerLocalConfig();
            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }


            using (IAMDatabase db = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword))
            {
                try
                {
                    db.openDB();
                }
                catch (Exception ex)
                {
                    StopOnError("Erro on acess database ", ex);
                }

                try
                {
                    ServerKey2 sk = new ServerKey2(db.Connection);
                    sk.RenewCert(db.Connection);

                    Console.WriteLine("Renewed certificate successfully");
                    TextLog.Log("RenewServerCert", "Renewed certificate successfully");
                }
                catch (Exception ex)
                {
                    UnhandledException.WriteEvent(null, ex, false);
                    StopOnError("Error on renew certificate ", ex);
                }
            }

            Console.WriteLine("Pressione ENTER para finalizar");
            Console.ReadLine();
        }
Exemplo n.º 6
0
        static void Main(string[] args)
        {
            ServerLocalConfig localConfig = new ServerLocalConfig();

            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }


            /*************
             * Gera os certificados do servidor
             */
            MSSQLDB db = new MSSQLDB(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);

            db.openDB();
            db.Timeout = 300;


            Int64 entityId = 0;

            if (args.Length > 0)
            {
                Int64.TryParse(args[0], out entityId);
            }

            DataTable tmp = db.Select(String.Format("select e.*, e1.id enterprise_id from entity e inner join context c on c.id = e.context_id inner join enterprise e1 on e1.id = c.enterprise_id where e.id = {0}", entityId));

            if (tmp == null)
            {
                StopOnError("Select is null", null);
            }

            if (tmp.Rows.Count == 0)
            {
                StopOnError("Select is empty", null);
            }

            EnterpriseKeyConfig sk = new EnterpriseKeyConfig(db.conn, (Int64)tmp.Rows[0]["entity_id"]);

            Int64 context      = (Int64)tmp.Rows[0]["context_id"];
            Int64 enterpriseId = (Int64)tmp.Rows[0]["enterprise_id"];

            Console.WriteLine("##############################");
            Console.WriteLine("C Pwd: " + tmp.Rows[0]["password"].ToString());

            Console.WriteLine("");
            Console.WriteLine("##############################");
            using (CryptApi cApi = CryptApi.ParsePackage(sk.ServerPKCS12Cert, Convert.FromBase64String(tmp.Rows[0]["password"].ToString())))
                Console.WriteLine("Pwd: " + Encoding.UTF8.GetString(cApi.clearData));


            String text = "";

            do
            {
                //Console.Clear();
                Console.Write("Deseja redefinir a senha do usuário? (Y/N): ");
                text = Console.ReadLine().Trim();
                if (text.ToLower() == "y")
                {
                    break;
                }
                else if (text.ToLower() == "n")
                {
                    text = "";
                    break;
                }
                else
                {
                    text = "";
                }
            } while (text == "");

            if (text.ToLower() == "y")
            {
                BuildPassword(db, null, context, entityId, enterpriseId);
            }

            db.closeDB();

            StopOnError("", null);
        }
Exemplo n.º 7
0
        protected override void OnStart(string[] args)
        {
            /*************
             * Carrega configurações
             */

            System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType());
            basePath = Path.GetDirectoryName(asm.Location);

            localConfig = new ServerLocalConfig();
            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }


            Int32 cnt      = 0;
            Int32 stepWait = 15000;

            while (cnt <= 10)
            {
                try
                {
                    IAMDatabase db = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);
                    db.openDB();

                    db.ServiceStart("Inbound", null);

                    //Recria a tabela temporária
                    db.ExecuteNonQuery(@"
                    IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'collector_imports_temp'))
                    BEGIN
                        DROP TABLE [collector_imports_temp];
                    END", System.Data.CommandType.Text, null, null);

                    db.ExecuteNonQuery(@"
                    IF (NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'collector_imports_temp'))
                    BEGIN
                        select top 0 * into [collector_imports_temp] from [collector_imports];
                    END", System.Data.CommandType.Text, null, null);


                    db.closeDB();

                    break;
                }
                catch (Exception ex)
                {
                    if (cnt < 10)
                    {
                        TextLog.Log("Inbound", "Falha ao acessar o banco de dados: " + ex.Message);
                        Thread.Sleep(stepWait);
                        stepWait = stepWait * 2;
                        cnt++;
                    }
                    else
                    {
                        StopOnError("Falha ao acessar o banco de dados", ex);
                    }
                }
            }


            /*************
             * Inicia processo de verificação/atualização da base de dados
             */
            try
            {
                using (IAM.GlobalDefs.Update.IAMDbUpdate updt = new GlobalDefs.Update.IAMDbUpdate(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword))
                    updt.Update();
            }
            catch (Exception ex)
            {
                StopOnError("Falha ao atualizar o banco de dados", ex);
            }

            /*************
             * Inicia timer que processa os arquivos
             */

            Int32 maxThreads = 1;

            if (maxThreads > 0)
            {
                maxThreads = localConfig.EngineMaxThreads;
            }

            this.fileQueue = new QueueManager <FileInfo>(maxThreads, ProcQueue);
            this.fileQueue.Start();

            inboundTimer = new Timer(new TimerCallback(InboundTimer), null, 1000, 60000);
            statusTimer  = new Timer(new TimerCallback(TmrServiceStatusCallback), null, 100, 10000);
        }
Exemplo n.º 8
0
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Parâmetros: nome fqdn ");
                return;
            }

            ServerLocalConfig localConfig = new ServerLocalConfig();

            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }

            IAMDatabase db = null;

            try
            {
                db = new IAMDatabase(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);
                db.openDB();
            }
            catch (Exception ex)
            {
                StopOnError("Erro conectando na base de dados: " + ex.Message, null);
            }

            //Verifica se existe um certificado de servidor para usar
            //Desabilitado em 2018-03-05 (por erro de checagem de certificado por parte do proxy)
            //O Instalador precisa sempre usar o mesmo certificado disponível em Certificates e vinculado a este executável

            /*
             * DataTable dt = db.ExecuteDataTable("select server_cert, server_pkcs12_cert from server_cert with(nolock)");
             *
             * if ((dt != null) && (dt.Rows.Count > 0)) //Existe certificado, então lê
             * {
             *  //this.ServerCertString = dt.Rows[0]["server_cert"].ToString();
             *  //this.ServerPKCS12String = dt.Rows[0]["server_pkcs12_cert"].ToString();
             *
             *
             *  try
             *  {
             *      System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(Program));
             *      FileInfo certFile = new FileInfo(Path.Combine(Path.GetDirectoryName(asm.Location), "IAMServerCertificateRoot.cer"));
             *      if (certFile.Exists)
             *          certFile.Delete();
             *
             *      File.WriteAllBytes(certFile.FullName, Convert.FromBase64String(dt.Rows[0]["server_cert"].ToString()));
             *  }
             *  catch { }
             *
             *  try
             *  {
             *      System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(typeof(Program));
             *      FileInfo certFile = new FileInfo(Path.Combine(Path.GetDirectoryName(asm.Location), "IAMServerCertificateRoot.pfx"));
             *      if (certFile.Exists)
             *          certFile.Delete();
             *
             *      File.WriteAllBytes(certFile.FullName, Convert.FromBase64String(dt.Rows[0]["server_pkcs12_cert"].ToString()));
             *  }
             *  catch { }
             *
             * }*/

            //Creator creator = new Creator(db, "SafeID - Start enterprise", "demo.safeid.com.br", "pt-BR", "//login.safeid.com.br/cas/");
            Creator creator = new Creator(db, args[0], args[1], "pt-BR");

            creator.BuildCertificates();
            creator.Commit();
        }
Exemplo n.º 9
0
        static void Main(string[] args)
        {
            localConfig = new ServerLocalConfig();
            localConfig.LoadConfig();

            if ((localConfig.SqlServer == null) || (localConfig.SqlServer.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlserver' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlDb == null) || (localConfig.SqlDb.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqldb' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlUsername == null) || (localConfig.SqlUsername.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlusername' não localizado no arquivo de configuração 'server.conf'", null);
            }

            if ((localConfig.SqlPassword == null) || (localConfig.SqlPassword.Trim() == ""))
            {
                StopOnError("Parâmetro 'sqlpassword' não localizado no arquivo de configuração 'server.conf'", null);
            }

            Int32 cnt      = 0;
            Int32 stepWait = 15000;

            while (cnt <= 10)
            {
                try
                {
                    MSSQLDB db = new MSSQLDB(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);
                    db.openDB();

                    db.closeDB();

                    break;
                }
                catch (Exception ex)
                {
                    if (cnt < 10)
                    {
                        TextLog.Log("Engine", "Falha ao acessar o banco de dados: " + ex.Message);
                        Thread.Sleep(stepWait);
                        stepWait = stepWait * 2;
                        cnt++;
                    }
                    else
                    {
                        StopOnError("Falha ao acessar o banco de dados", ex);
                    }
                }
            }


            /*************
             * Gera os certificados do servidor
             * Verifica se o certificade está próximo de vencer
             */
            MSSQLDB db2 = new MSSQLDB(localConfig.SqlServer, localConfig.SqlDb, localConfig.SqlUsername, localConfig.SqlPassword);

            db2.openDB();


            DataTable created = db2.Select("select * from vw_entity_mails where create_date between CONVERT(datetime, convert(varchar(10),DATEADD(DAY, -1, GETDATE()),120) + ' 00:00:00', 120) and CONVERT(datetime, convert(varchar(10),getdate(),120) + ' 23:59:59', 120) order by context_name, full_name");
            DataTable all     = db2.Select("select * from vw_entity_mails order by context_name, full_name");
            Dictionary <String, String> title = new Dictionary <string, string>();

            title.Add("context_name", "Contexto");
            title.Add("full_name", "Nome completo");
            title.Add("login", "Login");
            title.Add("create_date", "Data de criação");
            title.Add("last_login", "Ultimo login");
            title.Add("mail", "E-mail");
            title.Add("locked", "Bloqueado");

            ReportBase rep1 = new ReportBase(created, title);
            ReportBase rep2 = new ReportBase(all, title);

            List <Attachment> atts = new List <Attachment>();

            using (MemoryStream ms1 = new MemoryStream(Encoding.UTF8.GetBytes(rep1.GetTXT())))
                using (MemoryStream ms2 = new MemoryStream(Encoding.UTF8.GetBytes(rep1.GetXML("Usuários", ""))))
                    using (MemoryStream ms3 = new MemoryStream(Encoding.UTF8.GetBytes(rep2.GetTXT())))
                        using (MemoryStream ms4 = new MemoryStream(Encoding.UTF8.GetBytes(rep2.GetXML("Usuários", ""))))
                        {
                            atts.Add(new Attachment(ms1, "created.txt"));
                            atts.Add(new Attachment(ms2, "created.xls"));
                            atts.Add(new Attachment(ms3, "all.txt"));
                            atts.Add(new Attachment(ms4, "all.xls"));

                            List <String> to = new List <string>();
                            to.Add("*****@*****.**");
                            to.Add("*****@*****.**");
                            to.Add("*****@*****.**");

                            sendEmail(db2, "Listagem de usuários em " + DateTime.Now.ToString("dd/MM/yyyy"), to, created.Rows.Count + " usuários criados de " + DateTime.Now.AddDays(-1).ToString("dd/MM/yyyy") + " até " + DateTime.Now.ToString("dd/MM/yyyy"), false, atts);
                        }
            db2.closeDB();
        }