/** * Sets the java.security.policy system property to point at the location of the security policy * file, which is assumed to be at "provided\rmiUtils\server.policy" (file separators adjusted to * match operating system). the security manager is then started. This method must be called * before starting the class server. */ private void configSecurityManager() { // file.separator is "\" in Windows and "/" in Unix/Linux/Mac. String sep = System.getProperty("file.separator"); System.setProperty( "java.security.policy", "provided" + sep + "rmiUtils" + sep + "server.policy"); outputCmd.apply("java.security.policy: " + System.getProperty("java.security.policy")); // Start the security manager if (System.getSecurityManager() == null) { outputCmd.apply("Installing new Security Manager...\n"); System.setSecurityManager(new SecurityManager()); outputCmd.apply("Security Manager = " + System.getSecurityManager()); } }
/** * Obtain an ObjectOutputStream that allows serialization of a graph of objects. The objects can * be plain Serializable objects or can be converted into Serializable objects using the handler * * @throws IOException when the serialziation fails * @return an ObjectOutputStream that can be used to serialize objects */ public ObjectOutputStream createObjectOutputStream( final OutputStream os, final boolean replaceObject, final NonSerializableObjectHandler handler) throws IOException { // Need privileged block here because EJBObjectOutputStream // does enableReplaceObject ObjectOutputStream oos = null; if (System.getSecurityManager() == null) { oos = new EJBObjectOutputStream(os, replaceObject, handler); } else { try { oos = (ObjectOutputStream) AccessController.doPrivileged( new PrivilegedExceptionAction() { public java.lang.Object run() throws Exception { return new EJBObjectOutputStream(os, replaceObject, handler); } }); } catch (PrivilegedActionException ex) { throw (IOException) ex.getException(); } } return oos; }
/** * Obtain an ObjectInputStream that allows de-serialization of a graph of objects. * * @throws IOException when the de-serialziation fails * @return an ObjectInputStream that can be used to deserialize objects */ public ObjectInputStream createObjectInputStream( final InputStream is, final boolean resolveObject, final ClassLoader loader) throws Exception { ObjectInputStream ois = null; if (loader != null) { // Need privileged block here because EJBObjectInputStream // does enableResolveObject if (System.getSecurityManager() == null) { ois = new EJBObjectInputStream(is, loader, resolveObject); } else { try { ois = (ObjectInputStream) AccessController.doPrivileged( new PrivilegedExceptionAction() { public java.lang.Object run() throws Exception { return new EJBObjectInputStream(is, loader, resolveObject); } }); } catch (PrivilegedActionException ex) { throw (IOException) ex.getException(); } } } else { ois = new ObjectInputStream(is); } return ois; }
public VINDecoderServer() { try { // Start the RMI Server // Registry registry = LocateRegistry.createRegistry(1099); // Assign a security manager, in the event that dynamic // classes are loaded if (System.getSecurityManager() == null) System.setSecurityManager( new RMISecurityManager() { public void checkConnect(String host, int port) {} public void checkConnect(String host, int port, Object context) {} public void checkAccept(String host, int port) {} }); System.out.println("Set the security manager"); // Create an instance of our power service server ... VINDecoderImpl vd = new VINDecoderImpl(); vd.setDB("/usr/local/vendor/bea/user_projects/matson/lib/jato_matson.jar"); System.out.println("Decoding vin..."); System.out.println(vd.decode("1GTDL19W5YB530809", null)); System.out.println("End Decoding vin..."); // ... and bind it with the RMI Registry // Naming.bind ("VINDecoderService", vd); System.out.println("VINDecoderService bound...."); } catch (Exception e) { e.printStackTrace(); } }
public static void main(String[] args) { String host = args[0]; int port = Integer.parseInt(args[1]); long id = Long.parseLong(args[2]); String character = args[3]; long actorId = Long.parseLong(args[4]); // Install an RMISecurityManager, if there is not a // SecurityManager already installed if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } String name = "rmi://" + host + ":" + port + "/MovieDatabase"; try { MovieDatabase db = (MovieDatabase) Naming.lookup(name); db.noteCharacter(id, character, actorId); Movie movie = db.getMovie(id); out.println(movie.getTitle()); for (Map.Entry entry : movie.getCharacters().entrySet()) { out.println(" " + entry.getKey() + "\t" + entry.getValue()); } } catch (RemoteException | NotBoundException | MalformedURLException ex) { ex.printStackTrace(System.err); } }
// private static final String HOST = "localhost"; public static void main(String[] args) throws Exception { if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } ClientImpt client = new ClientImpt(args); LocateRegistry.createRegistry(6600); String rmiObjectName = "rmi://localhost:6600/Client"; Naming.rebind(rmiObjectName, client); System.out.println(args[0] + " Broker server run...\n"); }
public static void main(String args[]) { /* * Create and install a security manager */ if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } try { Registry registry = LocateRegistry.getRegistry(2002); Hello obj = (Hello) registry.lookup("Hello"); String message = obj.sayHello(); System.out.println(message); } catch (Exception e) { System.out.println("HelloClient exception: " + e.getMessage()); e.printStackTrace(); } }
public static void main(String[] args) { String host = args[0]; int port = Integer.parseInt(args[1]); if (System.getSecurityManager() == null) { System.setSecurityManager(new RMISecurityManager()); } String name = "//" + host + ":" + port + "/EquationSolver"; double[][] A = { {4.0, 3.0, 1.0}, {2.0, -6.0, 4.0}, {7.0, 5.0, 3.0} }; double[] b = {17.0, 8.0, 32.0}; try { EquationSolver solver = (EquationSolver) Naming.lookup(name); double[] x = solver.solve(A, b); StringBuffer sb = new StringBuffer(); for (int i = 0; i < x.length; i++) { sb.append(x[i]); sb.append(' '); } System.out.println(sb); } catch (RemoteException ex) { ex.printStackTrace(System.err); } catch (NotBoundException ex) { ex.printStackTrace(System.err); } catch (MalformedURLException ex) { ex.printStackTrace(System.err); } }
public static void main(String args[]) { if (args.length != 2) { System.err.println("Uso: ObservadorCentralita hostregistro numPuertoRegistro"); return; } // Instancia gestor de seguridad if (System.getSecurityManager() == null) { System.setSecurityManager(new SecurityManager()); } try { // Obtiene referencia remota del servicio de rmiregistry ServicioCentralita srv = (ServicioCentralita) Naming.lookup("//" + args[0] + ":" + args[1] + "/Centralita"); // | |-> Número de // puerto escucha // |-> Host en el que se ejecuta el // servicio String nombreServicio = "default"; while (nombreServicio == "default") { // Captura el nombre del servicio System.out.println( "Elija el servicio:\n\t[1] Bomberos\n\t[2] Sanitarios\n\t[3] Policía\n\t[4] Guardia Civil"); Scanner input = new Scanner(System.in); String tipoServicio = input.nextLine(); switch (tipoServicio) { case "1": nombreServicio = "Bomberos"; break; case "2": nombreServicio = "Sanitarios"; break; case "3": nombreServicio = "Policia"; break; case "4": nombreServicio = "Guardia Civil"; break; default: nombreServicio = "default"; break; } } // Crea nuevo observador y lo registra en la lista ObservadorImpl o = new ObservadorImpl(nombreServicio); // Llamada al método remoto 'addObservador' del servicio srv.addObservador(o, nombreServicio); // Comrpeuba el nombre del servicio para imprimir código de color if (nombreServicio.equals("Bomberos")) { System.out.println( "\u001B[31mObservador " + nombreServicio + " registrado en la centralita\u001B[0m\n"); } else if (nombreServicio.equals("Sanitarios")) { System.out.println( "\u001B[35mObservador " + nombreServicio + " registrado en la centralita\u001B[0m\n"); } else if (nombreServicio.equals("Policia")) { System.out.println( "\u001B[34mObservador " + nombreServicio + " registrado en la centralita\u001B[0m\n"); } else if (nombreServicio.equals("Guardia Civil")) { System.out.println( "\u001B[32mObservador " + nombreServicio + " registrado en la centralita\u001B[0m\n"); } // Se mantiene esperando hasta que se para con Ctrl+D System.out.println("Para salir, pulsar Ctrl+D\n"); Scanner sleep = new Scanner(System.in); while (sleep.hasNextInt()) {} // Elimina de la lista al observador. Llamada al método remoto 'delObservador' del servicio srv.delObservador(o, nombreServicio); System.exit(0); } // Excepción RMI catch (RemoteException e) { System.err.println("Error de comunicación: " + e.toString()); } // Excepción cliente catch (Exception e) { System.err.println("Excepción en ObservadorCentralita: "); e.printStackTrace(); } }
public static void main(String args[]) { sameGroup = true; RMID rmid = null; System.err.println("\nRegression test for bug/rfe 4179055\n"); try { TestLibrary.suggestSecurityManager("java.lang.SecurityManager"); registry = java.rmi.registry.LocateRegistry.createRegistry(TestLibrary.REGISTRY_PORT); // must run with java.lang.SecurityManager or the test // result will be nullified if running with a build where // 4180392 has not been fixed. String smClassName = System.getSecurityManager().getClass().getName(); if (!smClassName.equals("java.lang.SecurityManager")) { TestLibrary.bomb("Test must run with java.lang.SecurityManager"); } // start an rmid. RMID.removeLog(); rmid = RMID.createRMID(); rmid.start(); // rmid.addOptions(new String[] {"-C-Djava.rmi.server.logCalls=true"}); // Ensure that activation groups run with the correct // security manager. // Properties p = new Properties(); p.put("java.security.policy", TestParams.defaultGroupPolicy); p.put("java.security.manager", "java.lang.SecurityManager"); // This action causes the following classes to be created // in this VM (RMI must permit the creation of these classes): // // sun.rmi.server.Activation$ActivationSystemImpl_Stub // sun.rmi.server.Activation$ActivationMonitorImpl_Stub // System.err.println("Create activation group, in a new VM"); ActivationGroupDesc groupDesc = new ActivationGroupDesc(p, null); ActivationSystem system = ActivationGroup.getSystem(); ActivationGroupID groupID = system.registerGroup(groupDesc); System.err.println("register activatable"); // Fix for: 4271615: make sure activation group runs in a new VM ActivationDesc desc = new ActivationDesc(groupID, "StubClassesPermitted", null, null); canCreateStubs = (CanCreateStubs) Activatable.register(desc); // ensure registry stub can be passed in a remote call System.err.println("getting the registry"); registry = canCreateStubs.getRegistry(); // make sure a client cant load just any sun.* class, just // as a sanity check, try to create a class we are not // allowed to access but which was passed in a remote call try { System.err.println("accessing forbidden class"); Object secureRandom = canCreateStubs.getForbiddenClass(); TestLibrary.bomb( "test allowed to access forbidden class," + " sun.security.provider.SecureRandom"); } catch (java.security.AccessControlException e) { // Make sure we received a *local* AccessControlException ByteArrayOutputStream bout = new ByteArrayOutputStream(); PrintStream ps = new PrintStream(bout); e.printStackTrace(ps); ps.flush(); String trace = new String(bout.toByteArray()); if ((trace.indexOf("exceptionReceivedFromServer") >= 0) || trace.equals("")) { throw e; } System.err.println("received expected local access control exception"); } // make sure that an ActivationGroupID can be passed in a // remote call; this is slightly more inclusive than // just passing a reference to the activation system System.err.println("returning group desc"); canCreateStubs.returnGroupID(); // Clean up object System.err.println("Deactivate object via method call"); canCreateStubs.shutdown(); System.err.println("\nsuccess: StubClassesPermitted test passed "); } catch (Exception e) { TestLibrary.bomb("\nfailure: unexpected exception ", e); } finally { try { Thread.sleep(4000); } catch (InterruptedException e) { } canCreateStubs = null; ActivationLibrary.rmidCleanup(rmid); System.err.println("rmid shut down"); } }