-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Start Keycloak Dev Svc for standalone OIDC Client
- Loading branch information
1 parent
4cab5df
commit beb0279
Showing
20 changed files
with
249 additions
and
121 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
63 changes: 63 additions & 0 deletions
63
...ent/deployment/src/test/java/io/quarkus/oidc/client/OidcClientKeycloakDevServiceTest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
package io.quarkus.oidc.client; | ||
|
||
import static org.hamcrest.MatcherAssert.assertThat; | ||
import static org.hamcrest.Matchers.equalTo; | ||
import static org.hamcrest.Matchers.is; | ||
import static org.hamcrest.Matchers.not; | ||
import static org.hamcrest.Matchers.notNullValue; | ||
|
||
import org.junit.jupiter.api.Test; | ||
import org.junit.jupiter.api.extension.RegisterExtension; | ||
|
||
import io.quarkus.oidc.runtime.OidcUtils; | ||
import io.quarkus.test.QuarkusUnitTest; | ||
import io.restassured.RestAssured; | ||
|
||
/** | ||
* Test Keycloak Dev Service is started when OIDC extension is disabled (or not present, though indirectly). | ||
* OIDC client auth server URL and client id and secret must be automatically configured for this test to pass. | ||
*/ | ||
public class OidcClientKeycloakDevServiceTest { | ||
|
||
@RegisterExtension | ||
static final QuarkusUnitTest test = new QuarkusUnitTest() | ||
.withApplicationRoot((jar) -> jar | ||
.addClasses(NamedOidcClientResource.class) | ||
.addAsResource("oidc-client-dev-service-test.properties", "application.properties")); | ||
|
||
@Test | ||
public void testInjectedNamedOidcClients() { | ||
String token1 = doTestGetTokenByNamedClient("client1"); | ||
String token2 = doTestGetTokenByNamedClient("client2"); | ||
validateTokens(token1, token2); | ||
} | ||
|
||
@Test | ||
public void testInjectedNamedTokens() { | ||
String token1 = doTestGetTokenByNamedTokensProvider("client1"); | ||
String token2 = doTestGetTokenByNamedTokensProvider("client2"); | ||
validateTokens(token1, token2); | ||
} | ||
|
||
private void validateTokens(String token1, String token2) { | ||
assertThat(token1, is(not(equalTo(token2)))); | ||
assertThat(upn(token1), is("alice")); | ||
assertThat(upn(token2), is("bob")); | ||
} | ||
|
||
private String upn(String token) { | ||
return OidcUtils.decodeJwtContent(token).getString("upn"); | ||
} | ||
|
||
private String doTestGetTokenByNamedClient(String clientId) { | ||
String token = RestAssured.given().get("/" + clientId + "/token").body().asString(); | ||
assertThat(token, is(notNullValue())); | ||
return token; | ||
} | ||
|
||
private String doTestGetTokenByNamedTokensProvider(String clientId) { | ||
String token = RestAssured.given().get("/" + clientId + "/token/singleton").body().asString(); | ||
assertThat(token, is(notNullValue())); | ||
return token; | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
extensions/oidc-client/deployment/src/test/resources/oidc-client-dev-service-test.properties
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
quarkus.oidc.enabled=false | ||
|
||
quarkus.oidc-client.client1.auth-server-url=${quarkus.oidc-client.auth-server-url} | ||
quarkus.oidc-client.client1.client-id=${quarkus.oidc-client.client-id} | ||
quarkus.oidc-client.client1.credentials.secret=${quarkus.oidc-client.credentials.secret} | ||
quarkus.oidc-client.client1.grant.type=password | ||
quarkus.oidc-client.client1.grant-options.password.username=alice | ||
quarkus.oidc-client.client1.grant-options.password.password=alice | ||
|
||
quarkus.oidc-client.client2.auth-server-url=${quarkus.oidc-client.auth-server-url} | ||
quarkus.oidc-client.client2.client-id=${quarkus.oidc-client.client-id} | ||
quarkus.oidc-client.client2.credentials.secret=${quarkus.oidc-client.credentials.secret} | ||
quarkus.oidc-client.client2.grant.type=password | ||
quarkus.oidc-client.client2.grant-options.password.username=bob | ||
quarkus.oidc-client.client2.grant-options.password.password=bob |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
...ces/keycloak/KeycloakBuildTimeConfig.java → ...ces/keycloak/KeycloakBuildTimeConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.