Skip to content

Commit fa055da

Browse files
author
Vladimir Kotal
authored
sanitize list of projects in suggester query (#3793)
1 parent 9d74bf9 commit fa055da

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/configuration/RuntimeEnvironment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ public boolean hasProjects() {
447447
/**
448448
* Get list of projects.
449449
*
450-
* @return a list containing all of the projects
450+
* @return a list containing all the projects
451451
*/
452452
public List<Project> getProjectList() {
453453
return new ArrayList<>(getProjects().values());

opengrok-web/src/main/java/org/opengrok/web/api/v1/suggester/parser/SuggesterQueryDataParser.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@
1818
*/
1919

2020
/*
21-
* Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
21+
* Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved.
2222
*/
2323
package org.opengrok.web.api.v1.suggester.parser;
2424

2525
import org.apache.commons.lang3.RandomStringUtils;
2626
import org.apache.lucene.queryparser.classic.ParseException;
2727
import org.apache.lucene.search.Query;
28+
import org.opengrok.indexer.configuration.RuntimeEnvironment;
2829
import org.opengrok.suggest.query.SuggesterQuery;
2930
import org.opengrok.indexer.logger.LoggerFactory;
3031
import org.opengrok.indexer.search.QueryBuilder;
@@ -33,9 +34,11 @@
3334
import org.opengrok.web.api.v1.suggester.query.SuggesterQueryBuilder;
3435

3536
import java.util.HashMap;
37+
import java.util.List;
3638
import java.util.Map;
3739
import java.util.logging.Level;
3840
import java.util.logging.Logger;
41+
import java.util.stream.Collectors;
3942

4043
/**
4144
* Parser for the raw {@link SuggesterQueryData}.
@@ -53,9 +56,14 @@ private SuggesterQueryDataParser() {
5356
* Parses the {@link SuggesterQueryData}.
5457
* @param data data to parse
5558
* @return parsed data for the suggester use
56-
* @throws ParseException if could not parse the search data into a valid {@link Query}
59+
* @throws ParseException could not parse the search data into a valid {@link Query}
5760
*/
5861
public static SuggesterData parse(final SuggesterQueryData data) throws ParseException {
62+
63+
List<String> projectList = data.getProjects().stream().
64+
filter(p -> RuntimeEnvironment.getInstance().getProjectNames().contains(p)).
65+
collect(Collectors.toList());
66+
5967
Map<String, String> fieldQueries = getFieldQueries(data);
6068

6169
ProcessedQueryData queryData = processQuery(fieldQueries.get(data.getField()), data.getCaretPosition());
@@ -87,7 +95,7 @@ public static SuggesterData parse(final SuggesterQueryData data) throws ParseExc
8795
query = null;
8896
}
8997

90-
return new SuggesterData(suggesterQuery, data.getProjects(), query, builder.getQueryTextWithPlaceholder(),
98+
return new SuggesterData(suggesterQuery, projectList, query, builder.getQueryTextWithPlaceholder(),
9199
builder.getIdentifier());
92100
}
93101

@@ -136,5 +144,4 @@ private static class ProcessedQueryData {
136144
this.query = query;
137145
}
138146
}
139-
140147
}

0 commit comments

Comments
 (0)