Skip to content

Commit

Permalink
Add --features-disabled=organization to Keycloak command and modify…
Browse files Browse the repository at this point in the history
… name of keycloak realm json

For more info see keycloak/keycloak#36284
  • Loading branch information
jedla97 committed Jan 8, 2025
1 parent 75b48f4 commit ed050ea
Show file tree
Hide file tree
Showing 36 changed files with 41 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
@QuarkusScenario
public class HttpAdvancedReactiveIT extends BaseHttpAdvancedReactiveIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(ssl = true, certificates = @Certificate(configureKeystore = true, configureHttpServer = true, useTlsRegistry = false))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
@DisabledIfSystemProperty(named = "ts.ibm-z-p.missing.services.excludes", matches = "true", disabledReason = "keycloak container not available on s390x & ppc64le.")
public class OpenShiftHttpAdvancedReactiveIT extends BaseHttpAdvancedReactiveIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(ssl = true, certificates = @Certificate(configureKeystore = true, configureHttpServer = true, useTlsRegistry = false))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
@QuarkusScenario
public class HttpAdvancedIT extends BaseHttpAdvancedIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(ssl = true, certificates = @Certificate(configureKeystore = true, configureHttpServer = true, useTlsRegistry = false))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
@DisabledIfSystemProperty(named = "ts.ibm-z-p.missing.services.excludes", matches = "true", disabledReason = "keycloak container not available on s390x & ppc64le.")
public class OpenShiftHttpAdvancedIT extends BaseHttpAdvancedIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(ssl = true, certificates = @Certificate(configureKeystore = true, configureHttpServer = true, useTlsRegistry = false))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public abstract class BaseMicrometerOidcSecurityIT {
static final String OK_HTTP_CALL_METRIC = HTTP_METRIC + "outcome=\"SUCCESS\",status=\"200\",uri=\"%s\"}";
static final String UNAUTHORIZED_HTTP_CALL_METRIC = HTTP_METRIC + "outcome=\"CLIENT_ERROR\",status=\"401\",uri=\"%s\"}";

@KeycloakContainer(command = { "start-dev", "--import-realm" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

private AuthzClient authzClient;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@QuarkusScenario
public class KeycloakAuthzSecurityIT extends BaseAuthzSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoAuthzSecurityIT extends BaseAuthzSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@QuarkusScenario
public class KeycloakAuthzSecurityReactiveIT extends BaseAuthzSecurityReactiveIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoAuthzSecurityReactiveIT extends BaseAuthzSecurityReactiveIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@QuarkusScenario
public class KeycloakOidcJwtSecurityIT extends BaseOidcJwtSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoOidcJwtSecurityIT extends BaseOidcJwtSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@QuarkusScenario
public class KeycloakMultiTenantSecurityIT extends BaseMultiTenantSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false", "--features=token-exchange" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false", "--features=token-exchange",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
public class OpenShiftRhSsoMultiTenantSecurityIT extends BaseMultiTenantSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features=token-exchange" }, image = "${rhbk.image}")
"--features=token-exchange", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@QuarkusScenario
public class KeycloakOauth2SecurityIT extends BaseOauth2SecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoOauth2SecurityIT extends BaseOauth2SecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;

import io.quarkus.test.bootstrap.KeycloakService;
import io.quarkus.test.bootstrap.RestService;
Expand All @@ -14,7 +13,7 @@
public class KeycloakOidcClientSecurityIT extends BaseOidcClientSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;

import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
Expand All @@ -19,7 +18,7 @@
public class OpenShiftRhSsoOidcClientSecurityIT extends BaseOidcClientSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;

import org.jboss.logging.Logger;

Expand All @@ -19,7 +18,7 @@ public abstract class BaseOidcIT {
static final String CLIENT_SECRET_DEFAULT = "test-application-client-secret";

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public class LogoutSinglePageAppFlowIT {

static final String REALM_DEFAULT = "quarkus";

@KeycloakContainer(command = { "start-dev", "--import-realm" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService("/kc-logout-realm.json", REALM_DEFAULT, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(classes = { LogoutFlow.class, LogoutTenantResolver.class })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;
import static io.restassured.RestAssured.given;

import java.util.List;
Expand All @@ -23,7 +22,7 @@
public class KeycloakOidcClientSecurityIT extends BaseOidcClientSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;

import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
Expand All @@ -19,7 +18,7 @@
public class OpenShiftRhSsoOidcClientSecurityIT extends BaseOidcClientSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_BASE_PATH;
import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;

import org.jboss.logging.Logger;

Expand All @@ -18,7 +17,7 @@ public abstract class BaseOidcIT {
static final String CLIENT_SECRET_DEFAULT = "test-application-client-secret";

@KeycloakContainer(command = { "start-dev", "--import-realm", "--features=token-exchange" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);
static KeycloakService keycloak = new KeycloakService("/realm-keycloak.json", DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
static RestService app = new RestService()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ public class LogoutSinglePageAppFlowIT {

static final String REALM_DEFAULT = "quarkus";

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false", "--features=token-exchange" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false", "--features=token-exchange",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService("/kc-logout-realm.json", REALM_DEFAULT, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication(classes = { LogoutFlow.class })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@
@QuarkusScenario
public class KeycloakWebappSecurityIT extends BaseWebappSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--hostname-strict=false",
"--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoWebappSecurityIT extends BaseWebappSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
@QuarkusScenario
public class KeycloakOidcSecurityIT extends BaseOidcSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" })
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" })
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@EnabledIfSystemProperty(named = "ts.redhat.registry.enabled", matches = "true")
public class OpenShiftRhSsoOidcSecurityIT extends BaseOidcSecurityIT {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
@KeycloakContainer(command = { "start-dev", "--import-realm", "--features-disabled=organization" }, image = "${rhbk.image}")
static KeycloakService keycloak = new KeycloakService(DEFAULT_REALM_FILE, DEFAULT_REALM, DEFAULT_REALM_BASE_PATH);

@QuarkusApplication
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.quarkus.ts.security.oidcclient.mtls;

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;
import static io.quarkus.ts.security.oidcclient.mtls.MutualTlsKeycloakService.newKeycloakInstance;

import org.apache.http.HttpStatus;
Expand All @@ -27,7 +26,7 @@ public class IncorrectKsFileTypeOidcMtlsIT extends BaseOidcMtlsIT {
"--https-client-auth=required", "--https-key-store-file=/etc/server-keystore.jks",
"--https-trust-store-file=/etc/server-truststore.jks",
"--https-trust-store-password=password" }, port = KEYCLOAK_PORT)
static KeycloakService keycloak = newKeycloakInstance(DEFAULT_REALM_FILE, REALM_DEFAULT, "realms")
static KeycloakService keycloak = newKeycloakInstance("/realm-keycloak.json", REALM_DEFAULT, "realms")
.withProperty("HTTPS_KEYSTORE", "resource_with_destination::/etc/|server-keystore." + KEYSTORE_FILE_EXTENSION)
.withProperty("HTTPS_TRUSTSTORE", "resource_with_destination::/etc/|server-truststore." + KEYSTORE_FILE_EXTENSION);

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.quarkus.ts.security.oidcclient.mtls;

import static io.quarkus.test.bootstrap.KeycloakService.DEFAULT_REALM_FILE;
import static io.quarkus.ts.security.oidcclient.mtls.MutualTlsKeycloakService.newKeycloakInstance;

import org.junit.jupiter.api.Tag;
Expand All @@ -21,7 +20,7 @@ public class JksOidcMtlsIT extends KeycloakMtlsAuthN {
"--https-client-auth=required", "--https-key-store-file=/etc/server-keystore.jks",
"--https-trust-store-file=/etc/server-truststore.jks",
"--https-trust-store-password=password" }, port = KEYCLOAK_PORT, builder = LocalHostKeycloakContainerManagedResourceBuilder.class)
static KeycloakService keycloak = newKeycloakInstance(DEFAULT_REALM_FILE, REALM_DEFAULT, "realms")
static KeycloakService keycloak = newKeycloakInstance("/realm-keycloak.json", REALM_DEFAULT, "realms")
.withProperty("HTTPS_KEYSTORE", "resource_with_destination::/etc/|server-keystore." + JKS_KEYSTORE_FILE_EXTENSION)
.withProperty("HTTPS_TRUSTSTORE",
"resource_with_destination::/etc/|server-truststore." + JKS_KEYSTORE_FILE_EXTENSION);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
public class OpenShiftRhSsoOidcMtlsIT extends KeycloakMtlsAuthN {

@KeycloakContainer(command = { "start-dev", "--import-realm" }, image = "${rhbk.image}")
static KeycloakService rhsso = newRhSsoInstance("/keycloak-realm.json", REALM_DEFAULT);
static KeycloakService rhsso = newRhSsoInstance("/realm-keycloak.json", REALM_DEFAULT);

/**
* Keystore file type is automatically detected by file extension by quarkus-oidc.
Expand Down
Loading

0 comments on commit ed050ea

Please sign in to comment.