From 1df4f51adf614210ca4a9b9728327090ec5ea264 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Fri, 11 Sep 2015 20:33:53 +0000
Subject: [PATCH] OPENDJ-1666 PR-19 CREST-3.0.0 Migration
---
opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPClientConnection.java | 64 +++++++++++++++----------------
1 files changed, 31 insertions(+), 33 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPClientConnection.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPClientConnection.java
index 5251ee6..b2447ef 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPClientConnection.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPClientConnection.java
@@ -25,6 +25,12 @@
*/
package org.opends.server.protocols.http;
+import static org.forgerock.opendj.adapter.server3x.Converters.from;
+import static org.forgerock.opendj.adapter.server3x.Converters.getResponseResult;
+import static org.forgerock.opendj.ldap.LdapException.newLdapException;
+import static org.opends.messages.ProtocolMessages.WARN_CLIENT_DISCONNECT_IN_PROGRESS;
+import static org.opends.server.loggers.AccessLogger.logDisconnect;
+
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
@@ -34,16 +40,19 @@
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
-import javax.servlet.http.HttpServletRequest;
-
+import org.forgerock.http.Context;
+import org.forgerock.http.MutableUri;
+import org.forgerock.http.context.ClientContext;
+import org.forgerock.http.context.AttributesContext;
+import org.forgerock.http.protocol.Request;
import org.forgerock.i18n.LocalizableMessage;
import org.forgerock.i18n.LocalizableMessageBuilder;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.forgerock.opendj.ldap.LdapException;
-import org.forgerock.opendj.ldap.spi.LdapPromiseImpl;
import org.forgerock.opendj.ldap.ResultCode;
import org.forgerock.opendj.ldap.SearchResultHandler;
import org.forgerock.opendj.ldap.responses.Result;
+import org.forgerock.opendj.ldap.spi.LdapPromiseImpl;
import org.opends.server.api.ClientConnection;
import org.opends.server.core.AddOperation;
import org.opends.server.core.BindOperation;
@@ -79,11 +88,6 @@
import org.opends.server.types.SearchResultEntry;
import org.opends.server.types.SearchResultReference;
-import static org.forgerock.opendj.adapter.server3x.Converters.*;
-import static org.forgerock.opendj.ldap.LdapException.*;
-import static org.opends.messages.ProtocolMessages.*;
-import static org.opends.server.loggers.AccessLogger.*;
-
/**
* This class defines an HTTP client connection, which is a type of client
* connection that will be accepted by an instance of the HTTP connection
@@ -234,7 +238,7 @@
private final InetAddress localAddress;
/** Whether this connection is secure. */
- private final boolean isSecure;
+ private boolean isSecure;
/** Security-Strength Factor extracted from the request attribute. */
private final int securityStrengthFactor;
@@ -244,26 +248,29 @@
*
* @param connectionHandler
* the connection handler that accepted this connection
- * @param request
- * represents this client connection.
+ * @param context
+ * represents the context of this client connection.
*/
- public HTTPClientConnection(HTTPConnectionHandler connectionHandler, HttpServletRequest request)
+ public HTTPClientConnection(HTTPConnectionHandler connectionHandler, Context context, Request request)
{
this.connectionHandler = connectionHandler;
-
+ final ClientContext clientCtx = context.asContext(ClientContext.class);
// Memorize all the fields we need from the request before Grizzly decides to recycle it
- this.clientAddress = request.getRemoteAddr();
- this.clientPort = request.getRemotePort();
- this.serverAddress = request.getLocalAddr();
- this.serverPort = request.getLocalPort();
- this.remoteAddress = toInetAddress(request.getRemoteAddr());
- this.localAddress = toInetAddress(request.getLocalAddr());
- this.isSecure = request.isSecure();
- this.securityStrengthFactor = calcSSF(request.getAttribute(SERVLET_SSF_CONSTANT));
+ this.clientAddress = clientCtx.getRemoteAddress();
+ this.remoteAddress = toInetAddress(clientAddress);
+ this.clientPort = clientCtx.getRemotePort();
+ this.isSecure = clientCtx.isSecure();
+
+ final MutableUri uri = request.getUri();
+ this.serverAddress = uri.getHost();
+ this.localAddress = toInetAddress(serverAddress);
+ this.serverPort = uri.getPort();
+ this.securityStrengthFactor = calcSSF(
+ context.asContext(AttributesContext.class).getAttributes().get(SERVLET_SSF_CONSTANT));
this.method = request.getMethod();
- this.query = computeQuery(request);
- this.protocol = request.getProtocol();
- this.userAgent = request.getHeader("User-Agent");
+ this.query = uri.getQuery();
+ this.protocol = request.getVersion();
+ this.userAgent = clientCtx.getUserAgent();
this.statTracker = this.connectionHandler.getStatTracker();
@@ -277,15 +284,6 @@
this.connectionID = DirectoryServer.newConnectionAccepted(this);
}
- private String computeQuery(HttpServletRequest request)
- {
- if (request.getQueryString() != null)
- {
- return request.getRequestURI() + "?" + request.getQueryString();
- }
- return request.getRequestURI();
- }
-
@Override
public String getAuthUser()
{
--
Gitblit v1.10.0