|
|||||||||
| Home >> All >> org >> jgroups >> [ util overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
org.jgroups.util
Class Proxy

java.lang.Objectorg.jgroups.util.Proxy
- public class Proxy
- extends java.lang.Object
Redirects incoming TCP connections to other hosts/ports. All redirections are defined in a file as for example
127.0.0.1:8888=www.ibm.com:80 localhost:80=pop.mail.yahoo.com:110The first line forwards all requests to port 8888 on to www.ibm.com at port 80 (it also forwards the HTTP response back to the sender. The second line essentially provides a POP-3 service on port 8110, using Yahoo's POP service. This is neat when you're behind a firewall and one of the few services in the outside world that are not blocked is port 80 (HHTP).
Note that JDK 1.4 is required for this class. Also, concurrent.jar has to be on the classpath. Note that you also need to include jsse.jar/jce.jar (same location as rt.jar) if you want SSL sockets.
To create SSLServerSockets you'll need to do the following: Generate a certificate as follows:
keytool -genkey -keystore /home/bela/.keystore -keyalg rsa -alias bela -storepassStart the Proxy as follows:-keypass
java -Djavax.net.ssl.keyStore=/home/bela/.keystore -Djavax.net.ssl.keyStorePassword=Start client as follows:-Djavax.net.ssl.trustStore=/home/bela/.keystore -Djavax.net.ssl.trustStorePassword= org.jgroups.util.Proxy -file /home/bela/map.properties
java -Djavax.net.ssl.trustStore=/home/bela/.keystore -Djavax.net.ssl.trustStorePassword=sslclient
To import a certificate into the keystore, use the following steps:
openssl x509 -in server.crt -out server.crt.der -outform DER keytool -import -trustcacerts -aliasThis will store the server's certificate in the ${user.home}/.keystore key store.-file server.crt.der
Note that an SSL client or server can be debugged by starting it as follows:
-Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -Djavax.net.debug=ssl
If you run a web browser, simply enter https://
Note that we cannot use JDK 1.4's selectors for SSL sockets, as getChannel() on an SSL socket doesn't seem to work.
| Nested Class Summary | |
(package private) static class |
Proxy.Connection
Handles an incoming SSLSocket or Socket. |
(package private) static class |
Proxy.MyInetSocketAddress
|
(package private) static class |
Proxy.Relayer
|
(package private) class |
Proxy.SocketAcceptor
Handles accepts on an SSLServerSocket or ServerSocket. |
| Field Summary | |
(package private) static int |
BUFSIZE
|
(package private) static boolean |
debug
|
(package private) EDU.oswego.cs.dl.util.concurrent.Executor |
executor
|
(package private) java.net.InetAddress |
local
|
(package private) int |
local_port
|
(package private) java.lang.String |
mapping_file
|
(package private) java.util.HashMap |
mappings
|
(package private) static int |
MAX_THREAD_POOL_SIZE
|
(package private) java.net.InetAddress |
remote
|
(package private) int |
remote_port
|
(package private) static boolean |
verbose
|
| Constructor Summary | |
Proxy(java.net.InetAddress local,
int local_port,
java.net.InetAddress remote,
int remote_port,
boolean verbose,
boolean debug)
|
|
Proxy(java.net.InetAddress local,
int local_port,
java.net.InetAddress remote,
int remote_port,
boolean verbose,
boolean debug,
java.lang.String mapping_file)
|
|
| Method Summary | |
(package private) void |
_handleConnection(java.nio.channels.SocketChannel in_channel,
java.nio.channels.SocketChannel out_channel)
|
(package private) void |
check(java.net.URI u)
Checks whether a URI is http(s):// |
(package private) void |
close(java.nio.channels.Selector sel,
java.nio.channels.SocketChannel in_channel,
java.nio.channels.SocketChannel out_channel)
|
(package private) static void |
close(java.net.Socket sock)
|
(package private) static void |
close(java.net.Socket in,
java.net.Socket out)
|
(package private) void |
handleConnection(java.nio.channels.SocketChannel in,
java.nio.channels.SocketChannel out)
|
(package private) static void |
help()
|
(package private) static void |
log(java.lang.String msg)
|
(package private) static void |
log(java.lang.String method_name,
java.lang.String msg)
|
(package private) void |
loop(java.nio.channels.Selector selector)
We handle only non-SSL connections |
static void |
main(java.lang.String[] args)
|
(package private) void |
populateMappings(java.lang.String filename)
Populates mappings hashmap. |
(package private) static java.lang.String |
printRelayedData(java.lang.String from,
java.lang.String to,
int num_bytes)
|
(package private) java.lang.String |
printSelectionOps(java.nio.channels.SelectionKey key)
|
(package private) boolean |
relay(java.nio.channels.SocketChannel from,
java.nio.channels.SocketChannel to,
java.nio.ByteBuffer buf)
Read all data from from and write it to to. |
void |
start()
|
(package private) java.net.SocketAddress |
strToAddr(java.lang.String input)
Input is "host:port" |
(package private) java.lang.String |
toString(java.net.InetSocketAddress addr)
|
(package private) java.lang.String |
toString(java.nio.channels.SocketChannel ch)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
local
java.net.InetAddress local
remote
java.net.InetAddress remote
local_port
int local_port
remote_port
int remote_port
verbose
static boolean verbose
debug
static boolean debug
mapping_file
java.lang.String mapping_file
mappings
final java.util.HashMap mappings
executor
EDU.oswego.cs.dl.util.concurrent.Executor executor
MAX_THREAD_POOL_SIZE
static final int MAX_THREAD_POOL_SIZE
- See Also:
- Constant Field Values
BUFSIZE
static final int BUFSIZE
- See Also:
- Constant Field Values
| Constructor Detail |
Proxy
public Proxy(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port, boolean verbose, boolean debug)
Proxy
public Proxy(java.net.InetAddress local, int local_port, java.net.InetAddress remote, int remote_port, boolean verbose, boolean debug, java.lang.String mapping_file)
| Method Detail |
start
public void start()
throws java.lang.Exception
loop
void loop(java.nio.channels.Selector selector)
- We handle only non-SSL connections
handleConnection
void handleConnection(java.nio.channels.SocketChannel in, java.nio.channels.SocketChannel out)
_handleConnection
void _handleConnection(java.nio.channels.SocketChannel in_channel, java.nio.channels.SocketChannel out_channel) throws java.lang.Exception
close
void close(java.nio.channels.Selector sel, java.nio.channels.SocketChannel in_channel, java.nio.channels.SocketChannel out_channel)
relay
boolean relay(java.nio.channels.SocketChannel from, java.nio.channels.SocketChannel to, java.nio.ByteBuffer buf) throws java.lang.Exception
- Read all data from
fromand write it toto. Returns false if channel was closed
toString
java.lang.String toString(java.nio.channels.SocketChannel ch)
toString
java.lang.String toString(java.net.InetSocketAddress addr)
printRelayedData
static java.lang.String printRelayedData(java.lang.String from, java.lang.String to, int num_bytes)
populateMappings
void populateMappings(java.lang.String filename) throws java.lang.Exception
- Populates
mappingshashmap. An example of a definition file is:http://localhost:8888=http://www.yahoo.com:80 https://localhost:2200=https://cvs.sourceforge.net:22 http://localhost:8000=https://www.ibm.com:443
Mappings can be http-https, https-http, http-http or https-https
check
void check(java.net.URI u) throws java.lang.Exception
- Checks whether a URI is http(s)://
:
strToAddr
java.net.SocketAddress strToAddr(java.lang.String input) throws java.lang.Exception
- Input is "host:port"
printSelectionOps
java.lang.String printSelectionOps(java.nio.channels.SelectionKey key)
main
public static void main(java.lang.String[] args)
help
static void help()
log
static void log(java.lang.String method_name, java.lang.String msg)
log
static void log(java.lang.String msg)
close
static void close(java.net.Socket in, java.net.Socket out)
close
static void close(java.net.Socket sock)
|
|||||||||
| Home >> All >> org >> jgroups >> [ util overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC
org.jgroups.util.Proxy