Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Erdfelt2014-09-22 19:43:37 +0000
committerJoakim Erdfelt2014-09-22 19:43:37 +0000
commitd6082b2d65a32a0631aedf67b1b686510e3e0139 (patch)
tree8d08e0658f93fc9e883407236ed324b2d829da38 /jetty-websocket/javax-websocket-server-impl/src/main/java/org
parent1ce66f38a032af49668515074a85b2ea62a2af5d (diff)
downloadorg.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.java10
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();

Back to the top