Skip to content

Commit 8705055

Browse files
committed
Add support for Visual Studio Code and Interactive Browser authentication types in DurableTaskSchedulerConnectionString. Update tests to verify new credential types.
1 parent 98cf7eb commit 8705055

File tree

3 files changed

+52
-3
lines changed

3 files changed

+52
-3
lines changed

azuremanaged/src/main/java/com/microsoft/durabletask/azuremanaged/DurableTaskSchedulerConnectionString.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@
1515
import com.azure.identity.AzurePowerShellCredentialBuilder;
1616
import com.azure.identity.DefaultAzureCredentialBuilder;
1717
import com.azure.identity.EnvironmentCredentialBuilder;
18+
import com.azure.identity.InteractiveBrowserCredentialBuilder;
1819
import com.azure.identity.ManagedIdentityCredentialBuilder;
20+
import com.azure.identity.VisualStudioCodeCredentialBuilder;
1921
import com.azure.identity.WorkloadIdentityCredentialBuilder;
2022

2123
/**
@@ -180,6 +182,10 @@ private static Map<String, String> parseConnectionString(String connectionString
180182
return new AzureCliCredentialBuilder().build();
181183
case "azurepowershell":
182184
return new AzurePowerShellCredentialBuilder().build();
185+
case "visualstudiocode":
186+
return new VisualStudioCodeCredentialBuilder().build();
187+
case "interactivebrowser":
188+
return new InteractiveBrowserCredentialBuilder().build();
183189
case "none":
184190
return null;
185191
default:

azuremanaged/src/test/java/com/microsoft/durabletask/azuremanaged/DurableTaskSchedulerConnectionStringTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,4 +224,44 @@ public void getCredential_ConfiguresWorkloadIdentityWithAllProperties() {
224224
assertNotNull(credential);
225225
assertTrue(credential instanceof WorkloadIdentityCredential);
226226
}
227+
228+
@Test
229+
@DisplayName("getCredential should return VisualStudioCodeCredential for VisualStudioCode authentication type")
230+
public void getCredential_ReturnsVisualStudioCodeCredential() {
231+
// Arrange
232+
String connectionString = String.format(
233+
"Endpoint=%s;Authentication=%s;TaskHub=%s",
234+
"https://example.com", "VisualStudioCode", "myTaskHub");
235+
236+
// Act
237+
DurableTaskSchedulerConnectionString result =
238+
new DurableTaskSchedulerConnectionString(connectionString);
239+
240+
// Assert
241+
TokenCredential credential = result.getCredential();
242+
assertNotNull(credential);
243+
244+
// Verify the correct credential type is returned
245+
assertTrue(credential instanceof VisualStudioCodeCredential);
246+
}
247+
248+
@Test
249+
@DisplayName("getCredential should return InteractiveBrowserCredential for InteractiveBrowser authentication type")
250+
public void getCredential_ReturnsInteractiveBrowserCredential() {
251+
// Arrange
252+
String connectionString = String.format(
253+
"Endpoint=%s;Authentication=%s;TaskHub=%s",
254+
"https://example.com", "InteractiveBrowser", "myTaskHub");
255+
256+
// Act
257+
DurableTaskSchedulerConnectionString result =
258+
new DurableTaskSchedulerConnectionString(connectionString);
259+
260+
// Assert
261+
TokenCredential credential = result.getCredential();
262+
assertNotNull(credential);
263+
264+
// Verify the correct credential type is returned
265+
assertTrue(credential instanceof InteractiveBrowserCredential);
266+
}
227267
}
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
durable.task.endpoint=<endpoint>
2-
durable.task.taskHubName=<hub-name>
3-
durable.task.connection-string=<connection-string>
1+
durable.task.endpoint=https://dtwbwuks01-gqa9c3ccgbgd.uksouth.durabletask.io
2+
durable.task.taskHubName=dtwbwuks01th01
3+
durable.task.connection-string=Endpoint=https://dtwbwuks01-gqa9c3ccgbgd.uksouth.durabletask.io;TaskHub=dtwbwuks01th01;Authentication=DefaultAzure;
4+
# Add logging configuration
5+
logging.level.com.microsoft.durabletask=DEBUG
6+
logging.level.root=INFO
47

58
server.port=8082

0 commit comments

Comments
 (0)