diff options
author | Joakim Erdfelt | 2014-09-22 19:43:37 +0000 |
---|---|---|
committer | Joakim Erdfelt | 2014-09-22 19:43:37 +0000 |
commit | d6082b2d65a32a0631aedf67b1b686510e3e0139 (patch) | |
tree | 8d08e0658f93fc9e883407236ed324b2d829da38 /jetty-websocket/javax-websocket-server-impl/src/main/java/org | |
parent | 1ce66f38a032af49668515074a85b2ea62a2af5d (diff) | |
download | org.eclipse.jetty.project-d6082b2d65a32a0631aedf67b1b686510e3e0139.tar.gz org.eclipse.jetty.project-d6082b2d65a32a0631aedf67b1b686510e3e0139.tar.xz org.eclipse.jetty.project-d6082b2d65a32a0631aedf67b1b686510e3e0139.zip |
444617 - Expose local and remote socket address to applications
+ Exposing 2 new automatically added userProperties
* "javax.websocket.endpoint.localAddress"
* "javax.websocket.endpoint.remoteAddress"
these are both java.net.InetSocketAddress objects
Diffstat (limited to 'jetty-websocket/javax-websocket-server-impl/src/main/java/org')
-rw-r--r-- | jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java index 39d72bd609..cba21a54e9 100644 --- a/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java +++ b/jetty-websocket/javax-websocket-server-impl/src/main/java/org/eclipse/jetty/websocket/jsr356/server/JsrCreator.java @@ -21,6 +21,7 @@ package org.eclipse.jetty.websocket.jsr356.server; import java.io.IOException; import java.util.ArrayList; import java.util.List; + import javax.websocket.Extension; import javax.websocket.Extension.Parameter; import javax.websocket.server.ServerEndpointConfig; @@ -40,6 +41,8 @@ import org.eclipse.jetty.websocket.servlet.WebSocketCreator; public class JsrCreator implements WebSocketCreator { + public static final String PROP_REMOTE_ADDRESS = "javax.websocket.endpoint.remoteAddress"; + public static final String PROP_LOCAL_ADDRESS = "javax.websocket.endpoint.localAddress"; private static final Logger LOG = Log.getLogger(JsrCreator.class); private final ServerEndpointMetadata metadata; private final ExtensionFactory extensionFactory; @@ -62,6 +65,13 @@ public class JsrCreator implements WebSocketCreator // Establish a copy of the config, so that the UserProperties are unique // per upgrade request. config = new BasicServerEndpointConfig(config); + + // Bug 444617 - Expose localAddress and remoteAddress for jsr modify handshake to use + // This is being implemented as an optional set of userProperties so that + // it is not JSR api breaking. A few users on #jetty and a few from cometd + // have asked for access to this information. + config.getUserProperties().put(PROP_LOCAL_ADDRESS,req.getLocalSocketAddress()); + config.getUserProperties().put(PROP_REMOTE_ADDRESS,req.getRemoteSocketAddress()); // Get Configurator from config object (not guaranteed to be unique per endpoint upgrade) ServerEndpointConfig.Configurator configurator = config.getConfigurator(); |