From 90a3e007a71c2abf386d56b2246448cc7b7bad94 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Sep 2025 20:29:20 +0000 Subject: [PATCH 1/3] Initial plan From e182922f9ac89fdbfd94bb6327b431625c6e25d8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Sep 2025 20:40:39 +0000 Subject: [PATCH 2/3] Fix Azure Managed Identity configuration and environment variable resolution Co-authored-by: richposada <454664+richposada@users.noreply.github.com> --- mi-sql-public-demo/dependency-reduced-pom.xml | 56 +++++++++++++++++++ .../src/main/java/com/example/MainSQL.java | 28 ++++++++++ .../src/main/resources/application.properties | 2 +- 3 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 mi-sql-public-demo/dependency-reduced-pom.xml diff --git a/mi-sql-public-demo/dependency-reduced-pom.xml b/mi-sql-public-demo/dependency-reduced-pom.xml new file mode 100644 index 0000000..9a8898f --- /dev/null +++ b/mi-sql-public-demo/dependency-reduced-pom.xml @@ -0,0 +1,56 @@ + + + 4.0.0 + com.example + demo + 1.0-SNAPSHOT + + + + maven-shade-plugin + 3.2.4 + + + package + + shade + + + + + com.example.MainSQL + + + + + *:* + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + + + + + + + com.azure.spring + spring-cloud-azure-dependencies + 5.22.0 + pom + import + + + + + 17 + 17 + 17 + + diff --git a/mi-sql-public-demo/src/main/java/com/example/MainSQL.java b/mi-sql-public-demo/src/main/java/com/example/MainSQL.java index 5a8f9a5..45f7af6 100644 --- a/mi-sql-public-demo/src/main/java/com/example/MainSQL.java +++ b/mi-sql-public-demo/src/main/java/com/example/MainSQL.java @@ -30,6 +30,10 @@ public static void main(String[] args) { String connString = properties.getProperty("AZURE_SQLDB_CONNECTIONSTRING"); String clientId = properties.getProperty("AZURE_CLIENT_ID"); + // Resolve environment variables in the connection string + connString = resolveEnvironmentVariables(connString); + clientId = resolveEnvironmentVariables(clientId); + connString = connString + ";msiClientId=" + clientId + ";authentication=ActiveDirectoryMSI"; System.out.print(connString); @@ -42,5 +46,29 @@ public static void main(String[] args) { } } + /** + * Resolves environment variables in the format ${VAR_NAME} with their actual values + */ + private static String resolveEnvironmentVariables(String input) { + if (input == null) { + return null; + } + + String result = input; + // Find all environment variable references like ${VAR_NAME} + java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("\\$\\{([^}]+)\\}"); + java.util.regex.Matcher matcher = pattern.matcher(result); + + while (matcher.find()) { + String varName = matcher.group(1); + String envValue = System.getenv(varName); + if (envValue != null) { + result = result.replace("${" + varName + "}", envValue); + } + } + + return result; + } + } \ No newline at end of file diff --git a/mi-sql-public-demo/src/main/resources/application.properties b/mi-sql-public-demo/src/main/resources/application.properties index ed7d015..d4813cc 100644 --- a/mi-sql-public-demo/src/main/resources/application.properties +++ b/mi-sql-public-demo/src/main/resources/application.properties @@ -1,5 +1,5 @@ AZURE_SQLDB_CONNECTIONSTRING=jdbc:sqlserver://${AZ_DATABASE_SERVER_NAME}.database.windows.net:1433;database=demo;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30; -AZURE_CLIENT_ID= +AZURE_CLIENT_ID=${AZURE_CLIENT_ID} # Enable Azure managed identity for Spring Cloud Azure spring.cloud.azure.credential.managed-identity-enabled=true From 6c70f9ccddd778ef300c138350dbf1fe63af7eb7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 10 Sep 2025 20:43:50 +0000 Subject: [PATCH 3/3] Clean up build artifacts from version control Co-authored-by: richposada <454664+richposada@users.noreply.github.com> --- .gitignore | 3 + mi-sql-public-demo/dependency-reduced-pom.xml | 56 ------------------- 2 files changed, 3 insertions(+), 56 deletions(-) delete mode 100644 mi-sql-public-demo/dependency-reduced-pom.xml diff --git a/.gitignore b/.gitignore index cd4f7a7..7cedd0c 100644 --- a/.gitignore +++ b/.gitignore @@ -58,3 +58,6 @@ build/ .vscode/ /logs/ + +# Maven shade plugin artifacts +dependency-reduced-pom.xml diff --git a/mi-sql-public-demo/dependency-reduced-pom.xml b/mi-sql-public-demo/dependency-reduced-pom.xml deleted file mode 100644 index 9a8898f..0000000 --- a/mi-sql-public-demo/dependency-reduced-pom.xml +++ /dev/null @@ -1,56 +0,0 @@ - - - 4.0.0 - com.example - demo - 1.0-SNAPSHOT - - - - maven-shade-plugin - 3.2.4 - - - package - - shade - - - - - com.example.MainSQL - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - - - - - - - com.azure.spring - spring-cloud-azure-dependencies - 5.22.0 - pom - import - - - - - 17 - 17 - 17 - -