Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance MySQL firewall public IP for local PC #5163

Merged
merged 22 commits into from
Apr 28, 2021
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
9531cf7
upgrade azure-toolkit-libs to 0.7.0-SNAPSHOT
wangmingliang-ms Apr 23, 2021
1203aec
upgrade azure-toolkit-for-java to 3.53.0-SNAPSHOT
wangmingliang-ms Apr 23, 2021
d03e4d2
remove azure-auth-helper from Utils.
wangmingliang-ms Apr 23, 2021
ec646fd
Merge pull request #5148 from microsoft/startgame-s187
wangmingliang-ms Apr 23, 2021
bcd6db7
rename mysql related common utils.
shenqianjin Apr 27, 2021
8ab9374
get public IP by ping MySQL server for local PC
shenqianjin Apr 27, 2021
fbb072f
add NetUtils.
shenqianjin Apr 27, 2021
8989966
revert mysql related utils package.
shenqianjin Apr 27, 2021
cdb0031
updated firewallRule Service code location.
shenqianjin Apr 27, 2021
2849d9c
revert changes on MySQLConnectionUtils.
shenqianjin Apr 27, 2021
6477300
rename improper method name.
shenqianjin Apr 27, 2021
6f9e79c
extract getPublicIp method.
shenqianjin Apr 27, 2021
74eca28
fix compile issue.
shenqianjin Apr 27, 2021
a9d78a0
check firewall update result to update rule combox check status.
shenqianjin Apr 27, 2021
63a6686
expose getMac method for Azure MySQL firewall rule of local PC.
shenqianjin Apr 27, 2021
875e312
refactor getMac logic.
shenqianjin Apr 27, 2021
f89e506
add an alternative public IP getting approach by public URL.
shenqianjin Apr 27, 2021
a0bbd98
fix compile error.
shenqianjin Apr 27, 2021
3225434
Merge branch 'endgame-s186' into qianjin-bugfix-mysql
shenqianjin Apr 28, 2021
aeb858b
fixed compile issue.
shenqianjin Apr 28, 2021
9cc06d8
revert lib version to adopt endgame's
shenqianjin Apr 28, 2021
294de83
revert dependencies in util/pom.xml
shenqianjin Apr 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions PluginsAndFeatures/AddLibrary/AzureLibraries/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
<parent>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>com.microsoft.azuretools.sdk.lib</artifactId>
Expand All @@ -38,7 +38,7 @@
<organization><name>Microsoft Corp.</name></organization>

<properties>
<azuretool.version>3.52.0</azuretool.version>
<azuretool.version>3.53.0-SNAPSHOT</azuretool.version>
<azuretool.sdk.version>3.25.0.qualifier</azuretool.sdk.version>
</properties>
<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ dependencies {
exclude group: "com.fasterxml.jackson", module: "jackson-bom"
}
compile project(':azure-intellij-plugin-lib')
compile "com.microsoft.azure:azure-toolkit-common-lib:0.6.0"
compile "com.microsoft.azure:azure-toolkit-common-lib:0.7.0-SNAPSHOT"

aspect "com.microsoft.azure:azure-toolkit-common-lib:0.6.0"
aspect "com.microsoft.azure:azure-toolkit-common-lib:0.7.0-SNAPSHOT"
}
13 changes: 6 additions & 7 deletions PluginsAndFeatures/azure-toolkit-for-intellij/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ subprojects {
compileOnly 'org.projectlombok:lombok:1.18.8'
annotationProcessor 'org.projectlombok:lombok:1.18.8'

compile "com.microsoft.azure:azure-toolkit-common-lib:0.6.0"
compile "com.microsoft.azure:azure-toolkit-common-lib:0.7.0-SNAPSHOT"
}
}

Expand Down Expand Up @@ -157,19 +157,19 @@ dependencies {
compile 'net.minidev:json-smart:2.3'
compile 'com.microsoft.azure:azure-client-runtime:1.7.5', { force = true }
compile 'com.microsoft.azure:azure-client-authentication:1.7.5', { force = true }
compile 'com.microsoft.azure:azure-toolkit-springcloud-lib:0.6.0', { force = true }
aspect "com.microsoft.azure:azure-toolkit-common-lib:0.6.0"
compile 'com.microsoft.azuretools:azuretools-core:3.52.0', {
compile 'com.microsoft.azure:azure-toolkit-springcloud-lib:0.7.0-SNAPSHOT', { force = true }
aspect "com.microsoft.azure:azure-toolkit-common-lib:0.7.0-SNAPSHOT"
compile 'com.microsoft.azuretools:azuretools-core:3.53.0-SNAPSHOT', {
exclude group: "com.microsoft.azure", module: "azure-client-authentication"
exclude group: "com.microsoft.azure", module: "azure-client-runtime"
exclude group: "javax.xml.bind", module: "jaxb-api"
}
compile 'com.microsoft.azuretools:azure-explorer-common:3.52.0', {
compile 'com.microsoft.azuretools:azure-explorer-common:3.53.0-SNAPSHOT', {
exclude group: "com.microsoft.azure", module: "azure-client-authentication"
exclude group: "com.microsoft.azure", module: "azure-client-runtime"
exclude group: "javax.xml.bind", module: "jaxb-api"
}
compile 'com.microsoft.azuretools:hdinsight-node-common:3.52.0', {
compile 'com.microsoft.azuretools:hdinsight-node-common:3.53.0-SNAPSHOT', {
exclude group: "com.microsoft.azure", module: "azure-client-authentication"
exclude group: "com.microsoft.azure", module: "azure-client-runtime"
exclude group: "javax.xml.bind", module: "jaxb-api"
Expand All @@ -193,7 +193,6 @@ dependencies {

compile group: 'com.jcraft', name: 'jsch', version: '0.1.55'
compile group: 'com.neovisionaries', name: 'nv-websocket-client', version: '2.9'
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.23'

testCompile 'junit:junit:4.13'
testCompile 'info.cukes:cucumber-junit:1.2.6'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude">
<id>com.microsoft.tooling.msservices.intellij.azure</id>
<name>Azure Toolkit for IntelliJ</name>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
<vendor email="[email protected]" url="http://www.microsoft.com">Microsoft</vendor>

<description><![CDATA[
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import com.microsoft.azure.toolkit.intellij.connector.Resource;
import com.microsoft.azure.toolkit.intellij.connector.ResourceDefinition;
import com.microsoft.azuretools.azurecommons.helpers.NotNull;
import com.microsoft.azuretools.utils.JdbcUrl;
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.EqualsAndHashCode;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
import com.microsoft.azure.toolkit.lib.common.operation.AzureOperationBundle;
import com.microsoft.azure.toolkit.lib.common.operation.IAzureOperationTitle;
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
import com.microsoft.azuretools.utils.MySQLConnectionUtils;
import com.microsoft.tooling.msservices.components.DefaultLoader;
import lombok.EqualsAndHashCode;
import lombok.Getter;
Expand All @@ -47,7 +48,7 @@
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;

import static com.microsoft.azure.toolkit.intellij.connector.mysql.MySQLConnectionUtils.ACCESS_DENIED_ERROR_CODE;
import static com.microsoft.azuretools.utils.MySQLConnectionUtils.ACCESS_DENIED_ERROR_CODE;
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved

@RequiredArgsConstructor
@EqualsAndHashCode(onlyExplicitlyIncluded = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
import com.microsoft.azure.toolkit.lib.common.form.AzureFormInput;
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
import com.microsoft.azuretools.azurecommons.util.Utils;
import com.microsoft.azuretools.utils.JdbcUrl;
import com.microsoft.azuretools.utils.MySQLConnectionUtils;
import lombok.Getter;
import org.apache.commons.lang3.ArrayUtils;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
import com.intellij.ui.AnimatedIcon;
import com.microsoft.azure.toolkit.intellij.common.AzureDialog;
import com.microsoft.azure.toolkit.intellij.connector.Password;
import com.microsoft.azure.toolkit.intellij.connector.mysql.JdbcUrl;
import com.microsoft.azure.toolkit.intellij.connector.mysql.MySQLConnectionUtils;
import com.microsoft.azure.toolkit.lib.common.exception.AzureToolkitRuntimeException;
import com.microsoft.azure.toolkit.lib.common.form.AzureForm;
import com.microsoft.azure.toolkit.lib.common.form.AzureFormInput;
import com.microsoft.azure.toolkit.lib.common.task.AzureTask;
import com.microsoft.azure.toolkit.lib.common.task.AzureTaskManager;
import com.microsoft.azuretools.azurecommons.util.Utils;
import com.microsoft.azuretools.utils.JdbcUrl;
import com.microsoft.azuretools.utils.MySQLConnectionUtils;
import com.microsoft.intellij.ui.messages.AzureBundle;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down
2 changes: 1 addition & 1 deletion Utils/azure-explorer-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<artifactId>azure-explorer-common</artifactId>
<properties>
Expand Down
7 changes: 6 additions & 1 deletion Utils/azuretools-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<artifactId>azuretools-core</artifactId>
<properties>
Expand Down Expand Up @@ -334,6 +334,11 @@
<groupId>org.jtwig</groupId>
<artifactId>jtwig-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,19 @@
import com.microsoft.azure.management.resources.fluentcore.arm.Region;
import com.microsoft.azuretools.authmanage.AuthMethodManager;
import com.microsoft.azuretools.core.mvp.model.AzureMvpModel;
import lombok.Lombok;
import com.microsoft.azuretools.utils.JdbcUrl;
import com.microsoft.azuretools.utils.MySQLConnectionUtils;
import com.microsoft.azuretools.utils.NetUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class MySQLMvpModel {
Expand All @@ -43,6 +42,7 @@ public class MySQLMvpModel {
private static final String NAME_ALLOW_ACCESS_TO_AZURE_SERVICES = "AllowAllWindowsAzureIps";
private static final String IP_ALLOW_ACCESS_TO_AZURE_SERVICES = "0.0.0.0";
private static final String NAME_PREFIX_ALLOW_ACCESS_TO_LOCAL = "ClientIPAddress_";
private static final Pattern IPADDRESS_PATTERN = Pattern.compile("\\d{1,3}.\\d{1,3}.\\d{1,3}.\\d{1,3}");
private static final List<String> MYSQL_SUPPORTED_REGIONS = Arrays.asList(
"australiacentral", "australiacentral2", "australiaeast", "australiasoutheast", "brazilsouth", "canadacentral", "canadaeast", "centralindia",
"centralus", "eastasia", "eastus2", "eastus", "francecentral", "francesouth", "germanywestcentral", "japaneast", "japanwest", "koreacentral",
Expand Down Expand Up @@ -213,8 +213,8 @@ public static boolean isAllowAccessFromLocalMachine(final String subscriptionId,
}

public static boolean isAllowAccessFromLocalMachine(final List<FirewallRuleInner> firewallRules) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's weird that we have to pass firewallRules as the parameter. I naturally think we should pass server as the parameter.
e.g. isLocalMachineAllowedAccess(server)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isLocalMachineAllowedAccess(server) existed as well. it is a polymorphic one. in order to void to list firewall rules twice when when need to calculate access to local PC and other azure services.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then this method may be renamed to something like isLocalMachineIncluded(rules)

final List<FirewallRuleInner> localFirewallRules = MySQLMvpModel.FirewallRuleMvpModel.getLocalFirewallRules(firewallRules);
return CollectionUtils.isNotEmpty(localFirewallRules);
final String ruleName = MySQLMvpModel.FirewallRuleMvpModel.getAllAccessFromLocalRuleName();
return firewallRules.stream().filter(e -> StringUtils.equals(e.name(), ruleName)).count() > 0L;
}

public static boolean updateAllowAccessToLocalMachine(final String subscriptionId, final Server server, final boolean enable) {
Expand All @@ -229,60 +229,41 @@ public static boolean enableAllowAccessFromLocalMachine(final String subscriptio
if (MySQLMvpModel.FirewallRuleMvpModel.isAllowAccessFromLocalMachine(subscriptionId, server)) {
return true;
}
try {
final String publicIp = MySQLMvpModel.FirewallRuleMvpModel.getPublicIp();
final String ruleName = NAME_PREFIX_ALLOW_ACCESS_TO_LOCAL + publicIp.replaceAll("\\.", "-");
final FirewallRuleInner firewallRule = new FirewallRuleInner();
firewallRule.withStartIpAddress(publicIp);
firewallRule.withEndIpAddress(publicIp);
final MySQLManager mySQLManager = AuthMethodManager.getInstance().getMySQLManager(subscriptionId);
mySQLManager.firewallRules().inner().createOrUpdate(server.resourceGroupName(), server.name(), ruleName, firewallRule);
} catch (IOException e) {
Lombok.sneakyThrow(e);
MySQLConnectionUtils.ConnectResult connectResult = MySQLConnectionUtils.connectWithPing(JdbcUrl.mysql(server.fullyQualifiedDomainName()),
server.administratorLogin() + "@" + server.name(), StringUtils.EMPTY);
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved
if (StringUtils.isNotBlank(connectResult.getMessage())) {
Matcher matcher = IPADDRESS_PATTERN.matcher(connectResult.getMessage());
if (matcher.find()) {
final String publicIp = matcher.group();
final String ruleName = MySQLMvpModel.FirewallRuleMvpModel.getAllAccessFromLocalRuleName();
final FirewallRuleInner firewallRule = new FirewallRuleInner();
firewallRule.withStartIpAddress(publicIp);
firewallRule.withEndIpAddress(publicIp);
final MySQLManager mySQLManager = AuthMethodManager.getInstance().getMySQLManager(subscriptionId);
mySQLManager.firewallRules().inner().createOrUpdate(server.resourceGroupName(), server.name(), ruleName, firewallRule);
return true;
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved
}
}
return true;
return false;
}

public static boolean disableAllowAccessFromLocalMachine(final String subscriptionId, final Server server) {
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved
if (!MySQLMvpModel.FirewallRuleMvpModel.isAllowAccessFromLocalMachine(subscriptionId, server)) {
return true;
}
final String ruleName = MySQLMvpModel.FirewallRuleMvpModel.getAllAccessFromLocalRuleName();
final MySQLManager mySQLManager = AuthMethodManager.getInstance().getMySQLManager(subscriptionId);
final List<FirewallRuleInner> firewallRules = MySQLMvpModel.FirewallRuleMvpModel.listFirewallRules(subscriptionId, server);
final List<FirewallRuleInner> localFirewallRules = MySQLMvpModel.FirewallRuleMvpModel.getLocalFirewallRules(firewallRules);
localFirewallRules.stream().forEach(e -> {
mySQLManager.firewallRules().inner().delete(server.resourceGroupName(), server.name(), e.name());
});
mySQLManager.firewallRules().inner().delete(server.resourceGroupName(), server.name(), ruleName);
return true;
}

private static List<FirewallRuleInner> getLocalFirewallRules(final List<FirewallRuleInner> firewallRules) {
try {
final String publicIp = getPublicIp();
if (StringUtils.isBlank(publicIp)) {
return new ArrayList<>();
}
return firewallRules.stream().filter(e -> StringUtils.equals(publicIp, e.startIpAddress()) && StringUtils.equals(publicIp, e.endIpAddress()))
.collect(Collectors.toList());
} catch (IOException e) {
Lombok.sneakyThrow(e);
}
return new ArrayList<>();
private static String getAllAccessFromLocalRuleName() {
shenqianjin marked this conversation as resolved.
Show resolved Hide resolved
final String hostname = NetUtils.getLocalHostname();
final String macAddress = NetUtils.getMacAddressString();
final String ruleName = NAME_PREFIX_ALLOW_ACCESS_TO_LOCAL + hostname + macAddress;
return ruleName;
}

private static String getPublicIp() throws IOException {
final URL url = new URL("https://ipecho.net/plain");
final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
String ip;
try (BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), StandardCharsets.UTF_8))) {
while ((ip = in.readLine()) != null) {
if (StringUtils.isNotBlank(ip)) {
break;
}
}
}
return ip;
}
}

private static List<Server> listMySQLServersBySubscriptionId(final String subscriptionId) throws IOException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*/

package com.microsoft.azure.toolkit.intellij.connector.mysql;
package com.microsoft.azuretools.utils;

import com.google.common.base.Preconditions;
import com.microsoft.azure.toolkit.lib.common.exception.AzureToolkitRuntimeException;
Expand Down Expand Up @@ -33,6 +33,10 @@ public static JdbcUrl mysql(String serverHost, String database) {
return new JdbcUrl(String.format("jdbc:mysql://%s:3306/%s?serverTimezone=UTC&useSSL=true&requireSSL=false", serverHost, database));
}

public static JdbcUrl mysql(String serverHost) {
return new JdbcUrl(String.format("jdbc:mysql://%s:3306?serverTimezone=UTC&useSSL=true&requireSSL=false", serverHost));
}

public int getPort() {
if (this.uri.getScheme().toLowerCase().startsWith("mysql")) {
return this.uri.getPort() < 1 ? 3306 : this.uri.getPort();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*/

package com.microsoft.azure.toolkit.intellij.connector.mysql;
package com.microsoft.azuretools.utils;

import com.microsoft.azuretools.ActionConstants;
import com.microsoft.azuretools.telemetrywrapper.EventType;
Expand Down Expand Up @@ -60,7 +60,8 @@ public static ConnectResult connectWithPing(JdbcUrl url, String username, String
serverVersion = ((ConnectionImpl) connection).getServerVersion().toString();
} catch (final SQLException exception) {
errorCode = exception.getErrorCode();
errorMessage = exception.getErrorCode() == CONNECTION_ERROR_CODE ? String.format(CONNECTION_ISSUE_MESSAGE, exception.getMessage()) : exception.getMessage();
errorMessage = exception.getErrorCode() == CONNECTION_ERROR_CODE ? String.format(CONNECTION_ISSUE_MESSAGE, exception.getMessage())
: exception.getMessage();
} catch (final ClassNotFoundException | RuntimeException exception) {
errorCode = exception instanceof ClassNotFoundException ? CLASS_NOT_FOUND_ERROR_CODE : UNKNOWN_EXCEPTION_ERROR_CODE;
errorMessage = exception.getMessage();
Expand Down
2 changes: 1 addition & 1 deletion Utils/hdinsight-node-common/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>hdinsight-node-common</artifactId>
Expand Down
12 changes: 3 additions & 9 deletions Utils/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.artifactId}-${project.version}</name>
<properties>
<azuretool.version>3.52.0</azuretool.version>
<azuretool.version>3.53.0-SNAPSHOT</azuretool.version>
<kotlin.version>1.3.72</kotlin.version>
<kotlin.jvmTargetVersion>1.8</kotlin.jvmTargetVersion>
<findsecbugs.version>1.11.0</findsecbugs.version>
Expand Down Expand Up @@ -73,9 +73,8 @@
<rx.version>1.3.8</rx.version>
<slf4j-api.version>1.7.30</slf4j-api.version>

<azure.toolkit-lib.version>0.6.0</azure.toolkit-lib.version>
<azure.toolkit-lib.version>0.7.0-SNAPSHOT</azure.toolkit-lib.version>
<azure.storage.version>8.6.5</azure.storage.version>
<azure.auth.helper.version>0.6.0</azure.auth.helper.version>
<azure.security.keyvault.secrets.version>4.2.0</azure.security.keyvault.secrets.version>
<azure.security.keyvault.keys.version>4.2.0</azure.security.keyvault.keys.version>
<azure.security.keyvault.certificates.version>4.1.0</azure.security.keyvault.certificates.version>
Expand Down Expand Up @@ -341,11 +340,6 @@
<artifactId>azure-security-keyvault-certificates</artifactId>
<version>${azure.security.keyvault.certificates.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>azure-auth-helper</artifactId>
<version>${azure.auth.helper.version}</version>
</dependency>
<dependency>
<groupId>com.microsoft.azure.appplatform.v2020_07_01</groupId>
<artifactId>azure-mgmt-appplatform</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion Utils/spark-localrun-mock/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>spark-localrun-mock</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion Utils/spark-tools/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<relativePath>../pom.xml</relativePath>
<groupId>com.microsoft.azuretools</groupId>
<artifactId>utils</artifactId>
<version>3.52.0</version>
<version>3.53.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>spark-tools</artifactId>
Expand Down