Skip to content

Commit 4927578

Browse files
authored
OIDC admin credentials (#1413)
JAVA-5450 # Conflicts: # driver-sync/src/test/functional/com/mongodb/internal/connection/OidcAuthenticationProseTests.java
1 parent f5293dc commit 4927578

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

.evergreen/run-mongodb-oidc-test.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@ fi
3434
which java
3535
export OIDC_TESTS_ENABLED=true
3636

37-
./gradlew -Dorg.mongodb.test.uri="$MONGODB_URI" \
37+
# use admin credentials for tests
38+
TO_REPLACE="mongodb://"
39+
REPLACEMENT="mongodb://$OIDC_ADMIN_USER:$OIDC_ADMIN_PWD@"
40+
ADMIN_URI=${MONGODB_URI/$TO_REPLACE/$REPLACEMENT}
41+
42+
./gradlew -Dorg.mongodb.test.uri="$ADMIN_URI" \
3843
--stacktrace --debug --info --no-build-cache driver-core:cleanTest \
3944
driver-sync:test --tests OidcAuthenticationProseTests --tests UnifiedAuthTest \
4045
driver-reactive-streams:test --tests OidcAuthenticationAsyncProseTests \

driver-sync/src/test/functional/com/mongodb/client/unified/Entities.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import com.mongodb.ClientEncryptionSettings;
2020
import com.mongodb.ClientSessionOptions;
21+
import com.mongodb.ConnectionString;
2122
import com.mongodb.MongoClientSettings;
2223
import com.mongodb.MongoCredential;
2324
import com.mongodb.ReadConcern;
@@ -535,6 +536,11 @@ private void initClient(final BsonDocument entity, final String id,
535536
"Unsupported authMechanismProperties for authMechanism: " + value);
536537
}
537538

539+
// override the org.mongodb.test.uri connection string
540+
String uri = getenv("MONGODB_URI");
541+
ConnectionString cs = new ConnectionString(uri);
542+
clientSettingsBuilder.applyConnectionString(cs);
543+
538544
String env = assertNotNull(getenv("OIDC_ENV"));
539545
MongoCredential oidcCredential = MongoCredential
540546
.createOidcCredential(null)

driver-sync/src/test/functional/com/mongodb/internal/connection/OidcAuthenticationProseTests.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,29 @@ public void test2p4InvalidClientConfigurationWithCallback() {
232232
() -> performFind(settings));
233233
}
234234

235+
@Test
236+
public void test2p5InvalidAllowedHosts() {
237+
assumeTestEnvironment();
238+
239+
String uri = "mongodb://localhost/?authMechanism=MONGODB-OIDC&authMechanismProperties=ENVIRONMENT:azure,TOKEN_RESOURCE:123";
240+
ConnectionString cs = new ConnectionString(uri);
241+
MongoCredential credential = assertNotNull(cs.getCredential())
242+
.withMechanismProperty("ALLOWED_HOSTS", Collections.emptyList());
243+
MongoClientSettings settings = MongoClientSettings.builder()
244+
.applicationName(appName)
245+
.applyConnectionString(cs)
246+
.retryReads(false)
247+
.credential(credential)
248+
.build();
249+
assertCause(IllegalArgumentException.class,
250+
"ALLOWED_HOSTS must be specified only when OIDC_HUMAN_CALLBACK is specified",
251+
() -> {
252+
try (MongoClient mongoClient = createMongoClient(settings)) {
253+
performFind(mongoClient);
254+
}
255+
});
256+
}
257+
235258
@Test
236259
public void test3p1AuthFailsWithCachedToken() throws ExecutionException, InterruptedException, NoSuchFieldException, IllegalAccessException {
237260
TestCallback callbackWrapped = createCallback();

0 commit comments

Comments
 (0)