private static void Main() { Assembly.Load("OpenBus.Legacy.Idl"); string hostName = DemoConfig.Default.busHostName; ushort hostPort = DemoConfig.Default.busHostPort; string loginFile = DemoConfig.Default.loginFile; bool useSSL = DemoConfig.Default.useSSL; string clientUser = DemoConfig.Default.clientUser; string clientThumbprint = DemoConfig.Default.clientThumbprint; string serverUser = DemoConfig.Default.serverUser; string serverThumbprint = DemoConfig.Default.serverThumbprint; ushort serverSSLPort = DemoConfig.Default.serverSSLPort; ushort serverOpenPort = DemoConfig.Default.serverOpenPort; string busIORFile = DemoConfig.Default.busIORFile; if (useSSL) { Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false); } else { ORBInitializer.InitORB(); } /* * ConsoleAppender appender = new ConsoleAppender { * Threshold = Level.Off, * Layout = * new SimpleLayout(), * }; * BasicConfigurator.Configure(appender); */ ConnectionProperties props = new ConnectionPropertiesImpl(); OpenBusContext context = ORBInitializer.Context; Connection conn; if (useSSL) { string ior = File.ReadAllText(busIORFile); conn = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); } else { conn = context.ConnectByAddress(hostName, hostPort, props); } context.SetDefaultConnection(conn); byte[] encoded = File.ReadAllBytes(loginFile); SharedAuthSecret secret = context.DecodeSharedAuth(encoded); conn.LoginBySharedAuth(secret); Assert.IsNotNull(conn.Login); Assert.IsNotNull(conn.Login.Value.id); Assert.IsNotNull(conn.Login.Value.entity); conn.Logout(); Logger.Info("Fim."); }
private static void Main() { string hostName = DemoConfig.Default.busHostName; ushort hostPort = DemoConfig.Default.busHostPort; ushort hostPort2 = DemoConfig.Default.bus2HostPort; _privateKey = Crypto.ReadKeyFile(DemoConfig.Default.privateKey); bool useSSL = DemoConfig.Default.useSSL; string clientUser = DemoConfig.Default.clientUser; string clientThumbprint = DemoConfig.Default.clientThumbprint; string serverUser = DemoConfig.Default.serverUser; string serverThumbprint = DemoConfig.Default.serverThumbprint; ushort serverSSLPort = DemoConfig.Default.serverSSLPort; ushort serverOpenPort = DemoConfig.Default.serverOpenPort; string busIORFile = DemoConfig.Default.busIORFile; string bus2IORFile = DemoConfig.Default.bus2IORFile; if (useSSL) { Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false); } else { ORBInitializer.InitORB(); } /* * ConsoleAppender appender = new ConsoleAppender { * Threshold = Level.All, * Layout = * new SimpleLayout(), * }; * BasicConfigurator.Configure(appender); */ OpenBusContext context = ORBInitializer.Context; // connect to the bus ConnectionProperties props = new ConnectionPropertiesImpl(); props.AccessKey = _privateKey; Connection conn2AtBus1; Connection conn3AtBus1; if (useSSL) { string ior = File.ReadAllText(busIORFile); string ior2 = File.ReadAllText(bus2IORFile); _conn1AtBus1 = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); conn2AtBus1 = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); conn3AtBus1 = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); _connAtBus2 = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior2), props); } else { _conn1AtBus1 = context.ConnectByAddress(hostName, hostPort, props); conn2AtBus1 = context.ConnectByAddress(hostName, hostPort, props); conn3AtBus1 = context.ConnectByAddress(hostName, hostPort, props); _connAtBus2 = context.ConnectByAddress(hostName, hostPort2, props); } // create service SCS component ComponentId id = new ComponentId("Hello", 1, 0, 0, ".net"); ComponentContext component = new DefaultComponentContext(id); component.AddFacet("Hello", Repository.GetRepositoryID(typeof(Hello)), new HelloImpl()); _ic = component.GetIComponent(); // login to the bus _conn1AtBus1.LoginByCertificate(Entity, _privateKey); conn2AtBus1.LoginByCertificate(Entity, _privateKey); conn3AtBus1.LoginByCertificate(Entity, _privateKey); _connAtBus2.LoginByCertificate(Entity, _privateKey); // set incoming connections context.OnCallDispatch = Dispatch; RegisterThreadStart start1 = new RegisterThreadStart(_conn1AtBus1, component. GetIComponent()); Thread thread1 = new Thread(start1.Run); thread1.Start(); _conn1AtBus1.OnInvalidLogin = InvalidLogin; RegisterThreadStart start2 = new RegisterThreadStart(conn2AtBus1, component. GetIComponent()); Thread thread2 = new Thread(start2.Run); thread2.Start(); conn2AtBus1.OnInvalidLogin = InvalidLogin; RegisterThreadStart start3 = new RegisterThreadStart(conn3AtBus1, component. GetIComponent()); Thread thread3 = new Thread(start3.Run); thread3.Start(); conn3AtBus1.OnInvalidLogin = InvalidLogin; context.SetCurrentConnection(_connAtBus2); context.OfferRegistry.registerService(_ic, ServiceProperties); _connAtBus2.OnInvalidLogin = InvalidLogin; Logger.Info("Servidor no ar."); Thread.Sleep(Timeout.Infinite); }
private static void Main() { string hostName = DemoConfig.Default.busHostName; ushort hostPort = DemoConfig.Default.busHostPort; bool useSSL = DemoConfig.Default.useSSL; string clientUser = DemoConfig.Default.clientUser; string clientThumbprint = DemoConfig.Default.clientThumbprint; string serverUser = DemoConfig.Default.serverUser; string serverThumbprint = DemoConfig.Default.serverThumbprint; ushort serverSSLPort = DemoConfig.Default.serverSSLPort; ushort serverOpenPort = DemoConfig.Default.serverOpenPort; string busIORFile = DemoConfig.Default.busIORFile; if (useSSL) { Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false); } else { ORBInitializer.InitORB(); } //FileInfo logFileInfo = new FileInfo(DemoConfig.Default.openbusLogFile); //XmlConfigurator.ConfigureAndWatch(logFileInfo); /* * ConsoleAppender appender = new ConsoleAppender { * Threshold = Level.Fatal, * Layout = * new SimpleLayout(), * }; * BasicConfigurator.Configure(appender); */ // credential reset tests CredentialResetTest[] resetCases = new CredentialResetTest[1]; CredentialReset tempReset = new CredentialReset { session = 2 ^ 32 - 1, challenge = CreateSecret(EncryptedBlockSize.ConstVal) }; resetCases[0] = new CredentialResetTest { Reset = tempReset, Expected = InvalidRemoteCode.ConstVal }; // no permission tests NoPermissionTest[] noPermissionCases = new NoPermissionTest[12]; noPermissionCases[0] = new NoPermissionTest { Raised = 0, Expected = 0 }; noPermissionCases[1] = new NoPermissionTest { Raised = InvalidCredentialCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; noPermissionCases[2] = new NoPermissionTest { Raised = InvalidChainCode.ConstVal, Expected = InvalidChainCode.ConstVal }; noPermissionCases[3] = new NoPermissionTest { Raised = UnverifiedLoginCode.ConstVal, Expected = UnverifiedLoginCode.ConstVal }; noPermissionCases[4] = new NoPermissionTest { Raised = UnknownBusCode.ConstVal, Expected = UnknownBusCode.ConstVal }; noPermissionCases[5] = new NoPermissionTest { Raised = InvalidPublicKeyCode.ConstVal, Expected = InvalidPublicKeyCode.ConstVal }; noPermissionCases[6] = new NoPermissionTest { Raised = NoCredentialCode.ConstVal, Expected = NoCredentialCode.ConstVal }; noPermissionCases[7] = new NoPermissionTest { Raised = NoLoginCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; noPermissionCases[8] = new NoPermissionTest { Raised = InvalidRemoteCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; noPermissionCases[9] = new NoPermissionTest { Raised = UnavailableBusCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; noPermissionCases[10] = new NoPermissionTest { Raised = InvalidTargetCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; noPermissionCases[11] = new NoPermissionTest { Raised = InvalidLoginCode.ConstVal, Expected = InvalidRemoteCode.ConstVal }; ORBInitializer.InitORB(); OpenBusContext context = ORBInitializer.Context; ConnectionProperties props = new ConnectionPropertiesImpl(); Connection conn; if (useSSL) { string ior = File.ReadAllText(busIORFile); conn = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); } else { conn = context.ConnectByAddress(hostName, hostPort, props); } context.SetDefaultConnection(conn); const string userLogin = "******"; byte[] userPassword = new ASCIIEncoding().GetBytes(userLogin); conn.LoginByPassword(userLogin, userPassword, "testing"); // propriedades geradas automaticamente ServiceProperty prop1 = new ServiceProperty("openbus.component.interface", Repository.GetRepositoryID(typeof(Server))); // propriedade definida pelo servidor protocol ServiceProperty prop2 = new ServiceProperty("offer.domain", "Interoperability Tests"); ServiceProperty[] properties = { prop1, prop2 }; List <ServiceOfferDesc> offers = Utils.FindOffer(ORBInitializer.Context.OfferRegistry, properties, 1, 10, 1); bool foundOne = false; foreach (ServiceOfferDesc serviceOfferDesc in offers) { try { string found = Utils.GetProperty(serviceOfferDesc.properties, "openbus.offer.entity"); Logger.Info("Entidade encontrada: " + found); MarshalByRefObject serverProxyObj = serviceOfferDesc.service_ref.getFacet( Repository.GetRepositoryID(typeof(Server))); if (serverProxyObj == null) { Logger.Info( "Não foi possível encontrar uma faceta com esse nome."); continue; } Server serverProxy = serverProxyObj as Server; if (serverProxy == null) { Logger.Info("Faceta encontrada não implementa Server."); continue; } foundOne = true; // inicio dos testes serverProxy.NonBusCall(); foreach (CredentialResetTest test in resetCases) { bool error = false; try { serverProxy.ResetCredentialWithChallenge(test.Reset.session, test.Reset.challenge); } catch (Exception e) { NO_PERMISSION npe = null; if (e is TargetInvocationException) { npe = e.InnerException as NO_PERMISSION; } if ((npe == null) && (!(e is NO_PERMISSION))) { throw; } npe = npe ?? (NO_PERMISSION)e; error = true; Assert.AreEqual(test.Expected, npe.Minor); Assert.AreEqual(CompletionStatus.Completed_No, npe.Status); } Assert.IsTrue(error); } foreach (NoPermissionTest test in noPermissionCases) { bool error = false; try { serverProxy.RaiseNoPermission(test.Raised); } catch (Exception e) { NO_PERMISSION npe = null; if (e is TargetInvocationException) { npe = e.InnerException as NO_PERMISSION; } if ((npe == null) && (!(e is NO_PERMISSION))) { throw; } npe = npe ?? (NO_PERMISSION)e; error = true; Assert.AreEqual(test.Expected, npe.Minor); Assert.AreEqual(CompletionStatus.Completed_No, npe.Status); } Assert.IsTrue(error); } } catch (TRANSIENT) { Logger.Info( "Uma das ofertas obtidas é de um cliente inativo. Tentando a próxima."); } } conn.Logout(); Assert.IsTrue(foundOne); Logger.Info("Fim."); }
private static void Main() { string hostName = DemoConfig.Default.busHostName; ushort hostPort = DemoConfig.Default.busHostPort; bool useSSL = DemoConfig.Default.useSSL; string clientUser = DemoConfig.Default.clientUser; string clientThumbprint = DemoConfig.Default.clientThumbprint; string serverUser = DemoConfig.Default.serverUser; string serverThumbprint = DemoConfig.Default.serverThumbprint; ushort serverSSLPort = DemoConfig.Default.serverSSLPort; ushort serverOpenPort = DemoConfig.Default.serverOpenPort; string busIORFile = DemoConfig.Default.busIORFile; if (useSSL) { Utils.InitSSLORB(clientUser, clientThumbprint, serverUser, serverThumbprint, serverSSLPort, serverOpenPort, true, true, "required", false, false); } else { ORBInitializer.InitORB(); } /* * ConsoleAppender appender = new ConsoleAppender { * Threshold = Level.Off, * Layout = * new SimpleLayout(), * }; * BasicConfigurator.Configure(appender); */ ConnectionProperties props = new ConnectionPropertiesImpl(); OpenBusContext context = ORBInitializer.Context; Connection conn; if (useSSL) { string ior = File.ReadAllText(busIORFile); conn = context.ConnectByReference((MarshalByRefObject)OrbServices.CreateProxy(typeof(MarshalByRefObject), ior), props); } else { conn = context.ConnectByAddress(hostName, hostPort, props); } context.SetDefaultConnection(conn); const string userLogin = "******"; byte[] userPassword = new ASCIIEncoding().GetBytes(userLogin); string loginFile = DemoConfig.Default.loginFile; conn.LoginByPassword(userLogin, userPassword, "testing"); SharedAuthSecret secret = conn.StartSharedAuth(); byte[] sharedAuth = context.EncodeSharedAuth(secret); File.WriteAllBytes(loginFile, sharedAuth); conn.Logout(); Logger.Info("Fim."); Logger.Info( "Execute o cliente que fará o login por autenticação compartilhada."); }