diff --git a/java-17-sample/README.md b/java-17-sample/README.md
index 17a9898..5483c63 100644
--- a/java-17-sample/README.md
+++ b/java-17-sample/README.md
@@ -15,11 +15,15 @@ az account set --subscription $SUBSCRIPTION
```
# Standard Plan
+## Provision ASA Service Instance
+```shell
+az spring create --resource-group $RESOURCE_GROUP --name $SERVICE_NAME --sku standard --location $LOCATION
+az spring app create -n java17sample --service $SERVICE_NAME -g $RESOURCE_GROUP --runtime-version Java_17 --assign-endpoint true
+```
## Deploy Application
```shell
mvn clean package
-az spring app create -n java17sample --service $SERVICE_NAME -g $RESOURCE_GROUP --runtime-version Java_17 --assign-endpoint true
az spring app deploy -n java17sample --service $SERVICE_NAME -g $RESOURCE_GROUP --artifact-path ./target/java-17-sample-1.0-SNAPSHOT.jar
```
diff --git a/java-17-sample/pom.xml b/java-17-sample/pom.xml
index 91d74ee..182da66 100644
--- a/java-17-sample/pom.xml
+++ b/java-17-sample/pom.xml
@@ -35,6 +35,10 @@
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
+
+ com.azure
+ azure-identity
+
org.apache.httpcomponents
httpclient
@@ -43,7 +47,7 @@
com.fasterxml.woodstox
woodstox-core
- 6.4.0
+ 7.1.0
@@ -52,14 +56,21 @@
org.springframework.boot
spring-boot-dependencies
- 3.3.3
+ 3.4.1
pom
import
org.springframework.cloud
spring-cloud-dependencies
- 2023.0.3
+ 2024.0.0
+ pom
+ import
+
+
+ com.azure
+ azure-sdk-bom
+ 1.2.30
pom
import
diff --git a/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java b/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java
index 00f7610..e583bb8 100644
--- a/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java
+++ b/java-17-sample/src/main/java/com/azure/asa/sample/EurekaController.java
@@ -13,7 +13,7 @@
@RestController
public class EurekaController {
- @Autowired
+ @Autowired(required = false)
private EurekaClient discoveryClient;
@GetMapping("/eureka")
diff --git a/java-17-sample/src/main/java/com/azure/asa/sample/ManagedIdentityTestController.java b/java-17-sample/src/main/java/com/azure/asa/sample/ManagedIdentityTestController.java
new file mode 100644
index 0000000..9fc0e23
--- /dev/null
+++ b/java-17-sample/src/main/java/com/azure/asa/sample/ManagedIdentityTestController.java
@@ -0,0 +1,26 @@
+package com.azure.asa.sample;
+
+import com.azure.core.credential.AccessToken;
+import com.azure.core.credential.TokenRequestContext;
+import com.azure.identity.ManagedIdentityCredential;
+import com.azure.identity.ManagedIdentityCredentialBuilder;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class ManagedIdentityTestController {
+
+ @GetMapping("/mi/token")
+ public String getAccessToken(@RequestParam(name = "client-id", required = false) String clientId) {
+ ManagedIdentityCredentialBuilder managedIdentityCredentialBuilder = new ManagedIdentityCredentialBuilder();
+ if(clientId != null) {
+ managedIdentityCredentialBuilder.clientId(clientId);
+ }
+ ManagedIdentityCredential managedIdentityCredential = managedIdentityCredentialBuilder.build();
+ AccessToken accessToken = managedIdentityCredential.getToken(new TokenRequestContext().addScopes("https://management.core.windows.net/")).block();
+
+ return accessToken.getToken();
+ }
+
+}
diff --git a/java-17-sample/src/main/java/com/azure/asa/sample/RestResponseEntityExceptionHandler.java b/java-17-sample/src/main/java/com/azure/asa/sample/RestResponseEntityExceptionHandler.java
new file mode 100644
index 0000000..4320130
--- /dev/null
+++ b/java-17-sample/src/main/java/com/azure/asa/sample/RestResponseEntityExceptionHandler.java
@@ -0,0 +1,21 @@
+package com.azure.asa.sample;
+
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.context.request.WebRequest;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
+
+@ControllerAdvice
+public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
+
+ @ExceptionHandler(value = {RuntimeException.class})
+ protected ResponseEntity