You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2016/08/31 15:15:52 UTC

svn commit: r1758619 - /manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java

Author: kwright
Date: Wed Aug 31 15:15:52 2016
New Revision: 1758619

URL: http://svn.apache.org/viewvc?rev=1758619&view=rev
Log:
Move more stuff around

Modified:
    manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java

Modified: manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java
URL: http://svn.apache.org/viewvc/manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java?rev=1758619&r1=1758618&r2=1758619&view=diff
==============================================================================
--- manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java (original)
+++ manifoldcf/integration/elasticsearch-2.0/trunk/src/main/java/org/apache/manifoldcf/elasticsearch/MCFAuthorizerRestSearchAction.java Wed Aug 31 15:15:52 2016
@@ -30,6 +30,8 @@ import com.fasterxml.jackson.databind.Js
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.elasticsearch.action.support.IndicesOptions;
+import org.elasticsearch.common.ParseFieldMatcher;
+import org.elasticsearch.common.bytes.BytesReference;
 import org.elasticsearch.common.Strings;
 import org.elasticsearch.index.query.*;
 import org.elasticsearch.rest.RestRequest;
@@ -57,17 +59,20 @@ public class MCFAuthorizerRestSearchActi
 
   @Override
   public void handleRequest(RestRequest request, RestChannel channel, Client client) {
-    SearchRequest searchRequest = parseSearchRequestMCF(request);
-    //TODO: see if this is still needed??? searchRequest.listenerThreaded(false);
+    SearchRequest searchRequest;
+    searchRequest = parseSearchRequestMCF(request, parseFieldMatcher);
     client.search(searchRequest, new RestStatusToXContentListener(channel));
   }
   
-  protected SearchRequest parseSearchRequestMCF(final RestRequest request) throws MCFAuthorizerException {
-    SearchRequest searchRequest;
+  protected SearchRequest parseSearchRequestMCF(
+    final RestRequest request,
+    final ParseFieldMatcher parseFieldMatcher) throws IOException {
+    final SearchRequest searchRequest;
     if(request.param("u")!=null) {
+      searchRequest = new SearchRequest();
       String[] authenticatedUserNamesAndDomains = request.param("u").split(",");
       String[] indices = Strings.splitStringByCommaToArray(request.param("index"));
-      searchRequest = new SearchRequest(indices);
+      searchRequest.indices(indices);
       boolean isTemplateRequest = request.path().endsWith("/template");
 
       if(request.hasContent() || request.hasParam("source")) {
@@ -78,23 +83,19 @@ public class MCFAuthorizerRestSearchActi
         ObjectNode modifiedJSON, innerJSON;
         JsonNode requestJSON;
 
-        try {
-          requestJSON = objectMapper.readTree(RestActions.getRestContent(request).toBytes());
-          if (isTemplateRequest) {
-            modifiedJSON = (ObjectNode) requestJSON;
-            innerJSON = (ObjectNode)requestJSON.findValue("template");
-            filteredQueryBuilder = QueryBuilders.filteredQuery(QueryBuilders.wrapperQuery(innerJSON.findValue("query").toString()), authorizationFilter);
-            modifiedJSON.replace("template",innerJSON.set("query", objectMapper.readTree(filteredQueryBuilder.buildAsBytes().toBytes())));
-            searchRequest.templateSource(modifiedJSON.toString());
-          } else {
-            filteredQueryBuilder = QueryBuilders.filteredQuery(QueryBuilders.wrapperQuery(requestJSON.findValue("query").toString()), authorizationFilter);
-            modifiedJSON = (ObjectNode) requestJSON;
-            modifiedJSON.set("query", objectMapper.readTree(filteredQueryBuilder.buildAsBytes().toBytes()));
-            searchRequest.source(modifiedJSON.toString());
-          }
-        } catch (IOException e) {
-            throw new MCFAuthorizerException("JSON parser error: "+e.getMessage(),e);
-          }
+        requestJSON = objectMapper.readTree(RestActions.getRestContent(request).toBytes());
+        if (isTemplateRequest) {
+          modifiedJSON = (ObjectNode) requestJSON;
+          innerJSON = (ObjectNode)requestJSON.findValue("template");
+          filteredQueryBuilder = QueryBuilders.filteredQuery(QueryBuilders.wrapperQuery(innerJSON.findValue("query").toString()), authorizationFilter);
+          modifiedJSON.replace("template",innerJSON.set("query", objectMapper.readTree(filteredQueryBuilder.buildAsBytes().toBytes())));
+          searchRequest.templateSource(modifiedJSON.toString());
+        } else {
+          filteredQueryBuilder = QueryBuilders.filteredQuery(QueryBuilders.wrapperQuery(requestJSON.findValue("query").toString()), authorizationFilter);
+          modifiedJSON = (ObjectNode) requestJSON;
+          modifiedJSON.set("query", objectMapper.readTree(filteredQueryBuilder.buildAsBytes().toBytes()));
+          searchRequest.source(modifiedJSON.toString());
+        }
       }
 
       //parseSearchSource(searchRequest.source(), request);
@@ -115,9 +116,7 @@ public class MCFAuthorizerRestSearchActi
       searchRequest.indicesOptions(IndicesOptions.fromRequest(request, searchRequest.indicesOptions()));
     }
     else {
-      //TODO: we definitely still need this, but its form has dramatically changed, and it now parses into the current body and returns
-      // void.  Gotta look at how to rethink plugin architecture given that ???
-      searchRequest = RestSearchAction.parseSearchRequest(request);
+      searchRequest = parseSearchRequest(request, parseFieldMatcher);
     }
     return searchRequest;
   }