From 5f06b4f9165af37f28859b3db4aa1c5a8d69d51a Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Fri, 18 Oct 2013 15:52:51 +0000
Subject: [PATCH] Fix OPENDJ-41: Expose LDAP Grizzly filter APIs This a a part of OPENDJ-175 - Decouple OpenDJ LDAP SDK from Grizzly  CR2491

---
 opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/GrizzlyLDAPConnection.java |   21 +--------------------
 1 files changed, 1 insertions(+), 20 deletions(-)

diff --git a/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/GrizzlyLDAPConnection.java b/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/GrizzlyLDAPConnection.java
index 40cd7b9..6a2f5d8 100644
--- a/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/GrizzlyLDAPConnection.java
+++ b/opendj3/opendj-grizzly/src/main/java/com/forgerock/opendj/grizzly/GrizzlyLDAPConnection.java
@@ -84,7 +84,6 @@
 import org.glassfish.grizzly.CompletionHandler;
 import org.glassfish.grizzly.filterchain.Filter;
 import org.glassfish.grizzly.filterchain.FilterChain;
-import org.glassfish.grizzly.filterchain.FilterChainBuilder;
 import org.glassfish.grizzly.ssl.SSLEngineConfigurator;
 import org.glassfish.grizzly.ssl.SSLFilter;
 
@@ -706,25 +705,7 @@
      */
     void installFilter(final Filter filter) {
         synchronized (stateLock) {
-            // Determine the index where the filter should be added.
-            final FilterChain oldFilterChain = (FilterChain) connection.getProcessor();
-            int filterIndex = oldFilterChain.size() - 1;
-            if (filter instanceof SSLFilter) {
-                // Beneath any ConnectionSecurityLayerFilters if present,
-                // otherwise beneath the LDAP filter.
-                for (int i = oldFilterChain.size() - 2; i >= 0; i--) {
-                    if (!(oldFilterChain.get(i) instanceof ConnectionSecurityLayerFilter)) {
-                        filterIndex = i + 1;
-                        break;
-                    }
-                }
-            }
-
-            // Create the new filter chain.
-            final FilterChain newFilterChain =
-                    FilterChainBuilder.stateless().addAll(oldFilterChain).add(filterIndex, filter)
-                            .build();
-            connection.setProcessor(newFilterChain);
+            GrizzlyUtils.addFilterToConnection(filter, connection);
         }
     }
 

--
Gitblit v1.10.0