Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit c254c05

Browse files
committed
Merge branch 'develop' into github_develop
2 parents 4290783 + e24bd3d commit c254c05

File tree

19 files changed

+369
-332
lines changed

19 files changed

+369
-332
lines changed

server/api-service/openblocks-plugins/elasticSearchPlugin/src/main/java/com/openblocks/plugin/es/EsConnector.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import com.google.common.base.Joiner;
3535
import com.openblocks.plugin.es.model.EsConnection;
3636
import com.openblocks.plugin.es.model.EsDatasourceConfig;
37+
import com.openblocks.sdk.config.CommonConfig;
3738
import com.openblocks.sdk.config.dynamic.Conf;
3839
import com.openblocks.sdk.config.dynamic.ConfigCenter;
3940
import com.openblocks.sdk.exception.BizError;
@@ -44,7 +45,6 @@
4445
import com.openblocks.sdk.util.ExceptionUtils;
4546
import com.openblocks.sdk.util.JsonUtils;
4647
import com.openblocks.sdk.util.Preconditions;
47-
import com.openblocks.sdk.webclient.NameResolver;
4848

4949
import lombok.extern.slf4j.Slf4j;
5050
import reactor.core.publisher.Mono;
@@ -61,10 +61,12 @@ public class EsConnector implements DatasourceConnector<EsConnection, EsDatasour
6161
private static final Joiner JOINER = Joiner.on("/");
6262

6363
private final Conf<Duration> datasourceValidateTimeout;
64+
private final CommonConfig commonConfig;
6465

65-
public EsConnector(ConfigCenter configCenter) {
66+
public EsConnector(ConfigCenter configCenter, CommonConfig commonConfig) {
6667
datasourceValidateTimeout = configCenter.mongoPlugin().ofInteger("datasourceValidateTimeoutMillis", 6000)
6768
.then(Duration::ofMillis);
69+
this.commonConfig = commonConfig;
6870
}
6971

7072
@Nonnull
@@ -100,7 +102,7 @@ public Mono<EsConnection> createConnection(EsDatasourceConfig connectionConfig)
100102
*/
101103
private RestClient buildRestClient(EsDatasourceConfig esDatasourceConfig) {
102104
ConnectionStringParseResult parseResult = parseConnectionString(esDatasourceConfig.getConnectionString());
103-
if (NameResolver.DISALLOWED_HOSTS.contains(parseResult.getHost())) {
105+
if (commonConfig.getDisallowedHosts().contains(parseResult.getHost())) {
104106
throw new BizException(BizError.INVALID_DATASOURCE_CONFIG_TYPE, "INVALID_CONNECTION_STRING");
105107
}
106108
HttpHost httpHost = new HttpHost(parseResult.getHost(), parseResult.getPort(), parseResult.getSchema());

server/api-service/openblocks-plugins/graphqlPlugin/src/main/java/com/openblocks/plugin/graphql/GraphQLExecutor.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
import static com.openblocks.sdk.util.MustacheHelper.renderMustacheString;
1414
import static com.openblocks.sdk.util.StreamUtils.collectList;
1515
import static com.openblocks.sdk.util.StreamUtils.distinctByKey;
16-
import static com.openblocks.sdk.webclient.WebClients.builder;
17-
import static com.openblocks.sdk.webclient.WebClients.withSafeHost;
1816
import static org.apache.commons.lang3.StringUtils.firstNonBlank;
1917
import static org.apache.commons.lang3.StringUtils.trimToEmpty;
2018

@@ -61,6 +59,7 @@
6159
import com.openblocks.plugin.graphql.helpers.BufferingFilter;
6260
import com.openblocks.plugin.graphql.model.GraphQLQueryConfig;
6361
import com.openblocks.plugin.graphql.model.GraphQLQueryExecutionContext;
62+
import com.openblocks.sdk.config.CommonConfig;
6463
import com.openblocks.sdk.exception.PluginException;
6564
import com.openblocks.sdk.models.Property;
6665
import com.openblocks.sdk.models.QueryExecutionResult;
@@ -76,6 +75,7 @@
7675
import com.openblocks.sdk.util.JsonUtils;
7776
import com.openblocks.sdk.util.MoreMapUtils;
7877
import com.openblocks.sdk.util.MustacheHelper;
78+
import com.openblocks.sdk.webclient.WebClientBuildHelper;
7979

8080
import lombok.Builder;
8181
import lombok.Getter;
@@ -100,6 +100,12 @@ public class GraphQLExecutor implements QueryExecutor<GraphQLDatasourceConfig, O
100100
private final DataUtils dataUtils = DataUtils.getInstance();
101101
Consumer<HttpHeaders> DEFAULT_HEADERS_CONSUMER = httpHeaders -> {};
102102

103+
private final CommonConfig commonConfig;
104+
105+
public GraphQLExecutor(CommonConfig commonConfig) {
106+
this.commonConfig = commonConfig;
107+
}
108+
103109
private static List<Property> renderMustacheValueInProperties(List<Property> properties, Map<String, Object> paramMap) {
104110
return properties.stream()
105111
.map(it -> {
@@ -244,7 +250,9 @@ private List<Property> buildBodyParams(List<Property> datasourceBodyFormData, Li
244250
public Mono<QueryExecutionResult> executeQuery(Object o, GraphQLQueryExecutionContext context) {
245251
return Mono.defer(() -> {
246252
URI uri = RestApiUriBuilder.buildUri(context.getUrl(), new HashMap<>(), context.getUrlParams());
247-
WebClient.Builder webClientBuilder = withSafeHost(builder());
253+
WebClient.Builder webClientBuilder = WebClientBuildHelper.builder()
254+
.disallowedHosts(commonConfig.getDisallowedHosts())
255+
.toWebClientBuilder();
248256

249257
Map<String, String> allHeaders = context.getHeaders();
250258
String contentType = context.getContentType();

server/api-service/openblocks-plugins/restApiPlugin/src/main/java/com/openblocks/plugin/restapi/RestApiExecutor.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import static com.openblocks.sdk.util.StreamUtils.collectList;
4242
import static org.apache.commons.collections4.MapUtils.emptyIfNull;
4343
import static org.apache.commons.lang3.StringUtils.trimToEmpty;
44-
import static org.springframework.web.reactive.function.client.WebClient.builder;
4544

4645
import java.io.IOException;
4746
import java.net.URI;
@@ -103,7 +102,7 @@
103102
import com.openblocks.sdk.plugin.restapi.auth.BasicAuthConfig;
104103
import com.openblocks.sdk.plugin.restapi.auth.RestApiAuthType;
105104
import com.openblocks.sdk.query.QueryVisitorContext;
106-
import com.openblocks.sdk.webclient.WebClients;
105+
import com.openblocks.sdk.webclient.WebClientBuildHelper;
107106

108107
import lombok.Builder;
109108
import lombok.Getter;
@@ -238,7 +237,10 @@ public Mono<QueryExecutionResult> executeQuery(Object webClientFilter, RestApiQu
238237

239238
return Mono.defer(() -> authByOauth2InheritFromLogin(context))
240239
.then(Mono.defer(() -> {
241-
WebClient.Builder webClientBuilder = WebClients.withSafeHostAndSecure(builder(), context.getSslConfig());
240+
WebClient.Builder webClientBuilder = WebClientBuildHelper.builder()
241+
.disallowedHosts(commonConfig.getDisallowedHosts())
242+
.sslConfig(context.getSslConfig())
243+
.toWebClientBuilder();
242244

243245
Map<String, String> allHeaders = context.getHeaders();
244246
String contentType = context.getContentType();

server/api-service/openblocks-plugins/restApiPlugin/src/test/java/com/openblocks/plugin/restapi/RestApiEngineTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public class RestApiEngineTest {
3838
private static final RestApiConnector connector = new RestApiConnector();
3939

4040
private final QueryVisitorContext queryVisitorContext = new QueryVisitorContext("userId1",
41-
"workspace1", 8080, null, null);
41+
"workspace1", 8080, null, null, null);
4242

4343
@Test
4444
public void testUrlConcatenationWithUriBuilder() {

server/api-service/openblocks-sdk/src/main/java/com/openblocks/sdk/config/CommonConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
import java.time.Duration;
44
import java.util.ArrayList;
55
import java.util.Arrays;
6+
import java.util.HashSet;
67
import java.util.List;
8+
import java.util.Set;
79

810
import org.apache.commons.collections4.CollectionUtils;
911
import org.apache.commons.lang3.StringUtils;
@@ -34,6 +36,7 @@ public class CommonConfig {
3436
private int maxQueryResponseSizeInMb = 10;
3537
private Cookie cookie = new Cookie();
3638
private JsExecutor jsExecutor = new JsExecutor();
39+
private Set<String> disallowedHosts = new HashSet<>();
3740

3841
public boolean isSelfHost() {
3942
return !isCloud();

server/api-service/openblocks-sdk/src/main/java/com/openblocks/sdk/query/QueryVisitorContext.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.openblocks.sdk.query;
22

33
import java.util.List;
4+
import java.util.Set;
45

56
import org.springframework.http.HttpCookie;
67
import org.springframework.util.MultiValueMap;
@@ -20,13 +21,15 @@ public class QueryVisitorContext {
2021
private final int systemPort;
2122

2223
private final Mono<List<Property>> authTokenMono;
24+
private final Set<String> disallowedHosts;
2325

2426
public QueryVisitorContext(String visitorId, String applicationOrgId, int systemPort,
25-
MultiValueMap<String, HttpCookie> cookies, Mono<List<Property>> authTokenMono) {
27+
MultiValueMap<String, HttpCookie> cookies, Mono<List<Property>> authTokenMono, Set<String> disallowedHosts) {
2628
this.visitorId = visitorId;
2729
this.applicationOrgId = applicationOrgId;
2830
this.systemPort = systemPort;
2931
this.cookies = cookies;
3032
this.authTokenMono = authTokenMono;
33+
this.disallowedHosts = disallowedHosts;
3134
}
3235
}

server/api-service/openblocks-sdk/src/main/java/com/openblocks/sdk/webclient/HttpClients.java

Lines changed: 0 additions & 69 deletions
This file was deleted.

server/api-service/openblocks-sdk/src/main/java/com/openblocks/sdk/webclient/NameResolver.java

Lines changed: 0 additions & 75 deletions
This file was deleted.

server/api-service/openblocks-sdk/src/main/java/com/openblocks/sdk/webclient/ResolverGroup.java

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)