public TimeAccessControl(ServerLocalConfig config) { this.localConfig = config; System.Reflection.Assembly asm = System.Reflection.Assembly.GetAssembly(this.GetType()); basePath = Path.GetDirectoryName(asm.Location); }
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; } }
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); }
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(); }
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(); }
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); }
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); }
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(); }
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(); }