From f38ae1391a42405f80b3e15bcaa2354f5b94994e Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 23 Sep 2016 12:57:59 +0000
Subject: [PATCH] OPENDJ-3332 Rest2ldap: return the OpenAPI descriptors over REST

---
 opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapHttpApplication.java          |    2 ++
 opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/Rest2LdapEndpoint.java |    6 +++++-
 opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java     |    5 ++++-
 opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPConnectionHandler.java       |    4 ++--
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapHttpApplication.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapHttpApplication.java
index 2afe7d0..2f414c7 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapHttpApplication.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapHttpApplication.java
@@ -64,6 +64,7 @@
 import org.forgerock.http.handler.HttpClientHandler;
 import org.forgerock.http.io.Buffer;
 import org.forgerock.http.protocol.Headers;
+import org.forgerock.http.swagger.OpenApiRequestFilter;
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
@@ -218,6 +219,7 @@
             configureConnectionFactories(config.get("ldapConnectionFactories"));
             final Filter authorizationFilter = buildAuthorizationFilter(config.get("authorization").required());
             return chainOf(newHttpHandler(configureRest2Ldap(configDirectory)),
+                           new OpenApiRequestFilter(),
                            new ErrorLoggerFilter(),
                            authorizationFilter);
         } catch (final Exception e) {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPConnectionHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPConnectionHandler.java
index 9efb145..a50fc4d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPConnectionHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/HTTPConnectionHandler.java
@@ -15,11 +15,11 @@
  */
 package org.opends.server.protocols.http;
 
+import static org.forgerock.http.grizzly.GrizzlySupport.newGrizzlyHttpHandler;
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.ProtocolMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
-import static org.forgerock.http.grizzly.GrizzlySupport.newGrizzlyHttpHandler;
 
 import java.io.IOException;
 import java.net.InetAddress;
@@ -943,7 +943,7 @@
     public ApiProducer<Swagger> getApiProducer()
     {
       // Needed to enforce generation of CREST APIs
-      return new SwaggerApiProducer(null, null, null);
+      return new SwaggerApiProducer(null);
     }
   }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
index 96093f7..ac39957 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/AdminEndpoint.java
@@ -15,6 +15,7 @@
  */
 package org.opends.server.protocols.http.rest2ldap;
 
+import static org.forgerock.http.handler.Handlers.chainOf;
 import static org.forgerock.http.routing.RouteMatchers.newResourceApiVersionBehaviourManager;
 import static org.forgerock.http.routing.Version.version;
 import static org.forgerock.json.resource.RouteMatchers.resourceApiVersionContextFilter;
@@ -39,6 +40,7 @@
 import org.forgerock.http.io.Buffer;
 import org.forgerock.http.routing.ResourceApiVersionBehaviourManager;
 import org.forgerock.http.routing.Version;
+import org.forgerock.http.swagger.OpenApiRequestFilter;
 import org.forgerock.json.JsonPointer;
 import org.forgerock.json.resource.BadRequestException;
 import org.forgerock.json.resource.ConnectionFactory;
@@ -125,7 +127,8 @@
     @Override
     public Handler start() throws HttpApplicationException
     {
-      return newHttpHandler(startRequestHandler());
+      return chainOf(newHttpHandler(startRequestHandler()),
+                     new OpenApiRequestFilter());
     }
 
     FilterChain startRequestHandler() throws HttpApplicationException
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/Rest2LdapEndpoint.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/Rest2LdapEndpoint.java
index 4334233..dff2422 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/Rest2LdapEndpoint.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/http/rest2ldap/Rest2LdapEndpoint.java
@@ -15,6 +15,7 @@
  */
 package org.opends.server.protocols.http.rest2ldap;
 
+import static org.forgerock.http.handler.Handlers.chainOf;
 import static org.forgerock.opendj.rest2ldap.Rest2LdapJsonConfigurator.configureEndpoint;
 import static org.forgerock.util.Options.defaultOptions;
 import static org.opends.messages.ConfigMessages.ERR_CONFIG_REST2LDAP_INVALID;
@@ -30,6 +31,7 @@
 import org.forgerock.http.HttpApplication;
 import org.forgerock.http.HttpApplicationException;
 import org.forgerock.http.io.Buffer;
+import org.forgerock.http.swagger.OpenApiRequestFilter;
 import org.forgerock.json.JsonValueException;
 import org.forgerock.json.resource.CrestApplication;
 import org.forgerock.json.resource.RequestHandler;
@@ -81,7 +83,9 @@
       final File endpointConfig = getFileForPath(configuration.getConfigDirectory(), serverContext);
       try
       {
-        return newHttpHandler(configureEndpoint(endpointConfig, defaultOptions()));
+        return chainOf(
+            newHttpHandler(configureEndpoint(endpointConfig, defaultOptions())),
+            new OpenApiRequestFilter());
       }
       catch (IOException e)
       {

--
Gitblit v1.10.0