Repository: wicket Updated Branches: refs/heads/wicket-7.x e0502b880 -> e2725482f
WICKET-6063 Add support for WebSocketRequest#getUrl() and other properties which are available in the handshake request Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e2725482 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e2725482 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e2725482 Branch: refs/heads/wicket-7.x Commit: e2725482f6d39ee9751193efe70b3d3442e5cbb9 Parents: e0502b8 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Sun Jan 10 20:39:57 2016 +0100 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Sun Jan 10 20:39:57 2016 +0100 ---------------------------------------------------------------------- .../protocol/ws/api/ServletRequestCopy.java | 95 +++++++++++++++----- .../protocol/ws/api/WebSocketRequest.java | 72 +-------------- 2 files changed, 76 insertions(+), 91 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/e2725482/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java index 218b1f7..0565a33 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/ServletRequestCopy.java @@ -63,6 +63,24 @@ public class ServletRequestCopy implements HttpServletRequest private final String method; private final String serverName; private final int serverPort; + private final String protocol; + private final String scheme; + private final String contentType; + private final Locale locale; + private final Enumeration<Locale> locales; + private final boolean isSecure; + private final String remoteUser; + private final String remoteAddr; + private final String remoteHost; + private final int remotePort; + private final String localAddr; + private final String localName; + private final int localPort; + private final String pathTranslated; + private final String requestedSessionId; + private final Principal principal; + + private String characterEncoding; public ServletRequestCopy(HttpServletRequest request) { this.servletPath = request.getServletPath(); @@ -73,6 +91,23 @@ public class ServletRequestCopy implements HttpServletRequest this.method = request.getMethod(); this.serverName = request.getServerName(); this.serverPort = request.getServerPort(); + this.protocol = request.getProtocol(); + this.scheme = request.getScheme(); + this.characterEncoding = request.getCharacterEncoding(); + this.contentType = request.getContentType(); + this.locale = request.getLocale(); + this.locales = request.getLocales(); + this.isSecure = request.isSecure(); + this.remoteUser = request.getRemoteUser(); + this.remoteAddr = request.getRemoteAddr(); + this.remoteHost = request.getRemoteHost(); + this.remotePort = request.getRemotePort(); + this.localAddr = request.getLocalAddr(); + this.localName = request.getLocalName(); + this.localPort = request.getLocalPort(); + this.pathTranslated = request.getPathTranslated(); + this.requestedSessionId = request.getRequestedSessionId(); + this.principal = request.getUserPrincipal(); HttpSession session = request.getSession(true); httpSession = new HttpSessionCopy(session); @@ -117,13 +152,13 @@ public class ServletRequestCopy implements HttpServletRequest @Override public String getRemoteAddr() { - return null; + return remoteAddr; } @Override public String getRemoteHost() { - return null; + return remoteHost; } @Override @@ -189,19 +224,29 @@ public class ServletRequestCopy implements HttpServletRequest @Override public Map getParameterMap() { - return null; + return parameters; } @Override public String getProtocol() { - return null; + String _protocol = "ws"; + if ("https".equalsIgnoreCase(protocol)) + { + _protocol = "wss"; + } + return _protocol; } @Override public String getScheme() { - return null; + String _scheme = "ws"; + if ("https".equalsIgnoreCase(scheme)) + { + _scheme = "wss"; + } + return _scheme; } @Override @@ -212,7 +257,14 @@ public class ServletRequestCopy implements HttpServletRequest @Override public int getIntHeader(String name) { - return 0; + Enumeration<String> values = headers.get(name); + int result = -1; + if (values.hasMoreElements()) + { + String value = values.nextElement(); + result = Integer.parseInt(value, 10); + } + return result; } @Override @@ -228,12 +280,13 @@ public class ServletRequestCopy implements HttpServletRequest @Override public String getCharacterEncoding() { - return null; + return characterEncoding; } @Override - public void setCharacterEncoding(String env) throws UnsupportedEncodingException + public void setCharacterEncoding(String characterEncoding) throws UnsupportedEncodingException { + this.characterEncoding = characterEncoding; } @Override @@ -245,7 +298,7 @@ public class ServletRequestCopy implements HttpServletRequest @Override public String getContentType() { - return null; + return contentType; } @Override @@ -267,19 +320,19 @@ public class ServletRequestCopy implements HttpServletRequest @Override public Locale getLocale() { - return null; + return locale; } @Override public Enumeration getLocales() { - return null; + return locales; } @Override public boolean isSecure() { - return false; + return isSecure; } @Override @@ -297,25 +350,25 @@ public class ServletRequestCopy implements HttpServletRequest @Override public int getRemotePort() { - return 0; + return remotePort; } @Override public String getLocalName() { - return null; + return localName; } @Override public String getLocalAddr() { - return null; + return localAddr; } @Override public int getLocalPort() { - return 0; + return localPort; } @Override @@ -374,7 +427,7 @@ public class ServletRequestCopy implements HttpServletRequest @Override public String getRemoteUser() { - return null; + return remoteUser; } @Override @@ -386,13 +439,13 @@ public class ServletRequestCopy implements HttpServletRequest @Override public Principal getUserPrincipal() { - return null; + return principal; } @Override public String getRequestedSessionId() { - return null; + return requestedSessionId; } @Override @@ -408,7 +461,7 @@ public class ServletRequestCopy implements HttpServletRequest @Override public String getPathTranslated() { - return null; + return pathTranslated; } @Override @@ -464,7 +517,7 @@ public class ServletRequestCopy implements HttpServletRequest @Override public Collection<Part> getParts() throws IOException, ServletException { - return null; + return Collections.emptyList(); } @Override http://git-wip-us.apache.org/repos/asf/wicket/blob/e2725482/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequest.java ---------------------------------------------------------------------- diff --git a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequest.java b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequest.java index f7eaf5b..01a91d0 100644 --- a/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequest.java +++ b/wicket-native-websocket/wicket-native-websocket-core/src/main/java/org/apache/wicket/protocol/ws/api/WebSocketRequest.java @@ -16,21 +16,10 @@ */ package org.apache.wicket.protocol.ws.api; -import java.nio.charset.Charset; -import java.util.Arrays; -import java.util.Enumeration; -import java.util.List; -import java.util.Locale; - -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; - -import org.apache.wicket.protocol.http.RequestUtils; import org.apache.wicket.protocol.http.servlet.ServletWebRequest; -import org.apache.wicket.request.Url; import org.apache.wicket.request.http.WebRequest; -import org.apache.wicket.util.lang.Generics; -import org.apache.wicket.util.time.Time; + +import javax.servlet.http.HttpServletRequest; /** * A {@link WebRequest} implementation used for the lifecycle of a web socket @@ -53,63 +42,6 @@ public class WebSocketRequest extends ServletWebRequest } @Override - public List<Cookie> getCookies() - { - List<Cookie> cookies = Arrays.asList(getContainerRequest().getCookies()); - return cookies; - } - - @Override - public List<String> getHeaders(String name) - { - Enumeration<String> headers = getContainerRequest().getHeaders(name); - List<String> h = Generics.newArrayList(); - while (headers.hasMoreElements()) - { - h.add(headers.nextElement()); - } - - return h; - } - - @Override - public String getHeader(String name) - { - return getContainerRequest().getHeader(name); - } - - @Override - public Time getDateHeader(String name) - { - long dateHeader = getContainerRequest().getDateHeader(name); - return Time.millis(dateHeader); - } - - @Override - public Url getUrl() - { - return null; - } - - @Override - public Url getClientUrl() - { - return null; - } - - @Override - public Locale getLocale() - { - return getContainerRequest().getLocale(); - } - - @Override - public Charset getCharset() - { - return RequestUtils.getCharset(getContainerRequest()); - } - - @Override public boolean isAjax() { return true;
