Skip to content

Commit 0f16824

Browse files
committed
Use URIBuilder for SPOG query param parsing
Replace manual string splitting of ?o= from httpPath with Apache URIBuilder.getQueryParams() as suggested in code review. Signed-off-by: Madhavendra Rathore <[email protected]> Co-authored-by: Isaac Signed-off-by: Madhavendra Rathore <[email protected]>
1 parent 2f21d4d commit 0f16824

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/main/java/com/databricks/jdbc/api/impl/DatabricksConnectionContext.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@
2929
import com.google.common.base.Supplier;
3030
import com.google.common.collect.ImmutableMap;
3131
import java.net.URI;
32+
import java.net.URISyntaxException;
3233
import java.util.*;
3334
import java.util.Collections;
3435
import java.util.regex.Matcher;
3536
import java.util.stream.Collectors;
37+
import org.apache.http.NameValuePair;
3638
import org.apache.http.client.utils.URIBuilder;
3739

3840
public class DatabricksConnectionContext implements IDatabricksConnectionContext {
@@ -1186,16 +1188,18 @@ private Map<String, String> parseCustomHeaders(ImmutableMap<String, String> para
11861188
String httpPath =
11871189
parameters.getOrDefault(
11881190
DatabricksJdbcUrlParams.HTTP_PATH.getParamName().toLowerCase(), "");
1189-
int queryStart = httpPath.indexOf('?');
1190-
if (queryStart >= 0) {
1191-
String queryString = httpPath.substring(queryStart + 1);
1192-
for (String param : queryString.split("&")) {
1193-
String[] kv = param.split("=", 2);
1194-
if (kv.length == 2 && "o".equals(kv[0]) && !kv[1].isEmpty()) {
1195-
headers.put(ORG_ID_HEADER, kv[1]);
1191+
try {
1192+
for (NameValuePair param :
1193+
new URIBuilder("http://placeholder" + httpPath).getQueryParams()) {
1194+
if ("o".equals(param.getName())
1195+
&& param.getValue() != null
1196+
&& !param.getValue().isEmpty()) {
1197+
headers.put(ORG_ID_HEADER, param.getValue());
11961198
break;
11971199
}
11981200
}
1201+
} catch (URISyntaxException e) {
1202+
// Malformed httpPath — skip SPOG header extraction
11991203
}
12001204
}
12011205

0 commit comments

Comments
 (0)