Stabilize integration test qualification
This commit is contained in:
parent
414b380516
commit
560e1df9b2
1 changed files with 68 additions and 180 deletions
|
|
@ -11,6 +11,13 @@ pub fn required_env(name: &str) -> String {
|
|||
std::env::var(name).unwrap_or_else(|_| panic!("{name} is required"))
|
||||
}
|
||||
|
||||
fn keycloak_admin_url() -> String {
|
||||
std::env::var("REMORA_KEYCLOAK_ADMIN_URL")
|
||||
.unwrap_or_else(|_| "http://keycloak.remora.test:8080".to_owned())
|
||||
.trim_end_matches('/')
|
||||
.to_owned()
|
||||
}
|
||||
|
||||
pub fn oidc_provider() -> OidcIdentityProvider {
|
||||
let provider = required_env("REMORA_OIDC_PROVIDER");
|
||||
let audience = if provider == "zitadel" {
|
||||
|
|
@ -179,9 +186,12 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
|
|||
let realm = required_env("REMORA_OIDC_TENANT");
|
||||
let client_id = required_env("REMORA_OIDC_CLIENT_ID");
|
||||
let username = required_env("REMORA_OIDC_USERNAME");
|
||||
let keycloak_url = keycloak_admin_url();
|
||||
let client = Client::new();
|
||||
let admin_response = client
|
||||
.post("http://keycloak.remora.test:8080/realms/master/protocol/openid-connect/token")
|
||||
.post(format!(
|
||||
"{keycloak_url}/realms/master/protocol/openid-connect/token"
|
||||
))
|
||||
.form(&[
|
||||
("grant_type", "password"),
|
||||
("client_id", "admin-cli"),
|
||||
|
|
@ -200,7 +210,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
|
|||
.ok_or_else(|| "keycloak admin token missing".to_owned())?;
|
||||
let users: Value = client
|
||||
.get(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users?username={username}&exact=true"
|
||||
"{keycloak_url}/admin/realms/{realm}/users?username={username}&exact=true"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.send()
|
||||
|
|
@ -216,7 +226,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
|
|||
.ok_or_else(|| "keycloak user missing".to_owned())?;
|
||||
let clients: Value = client
|
||||
.get(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients?clientId={client_id}"
|
||||
"{keycloak_url}/admin/realms/{realm}/clients?clientId={client_id}"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.send()
|
||||
|
|
@ -231,7 +241,7 @@ async fn revoke_keycloak_remora_roles() -> Result<(), String> {
|
|||
.and_then(|row| row["id"].as_str())
|
||||
.ok_or_else(|| "keycloak client missing".to_owned())?;
|
||||
let roles_url = format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
"{keycloak_url}/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
);
|
||||
let mapped: Value = client
|
||||
.get(&roles_url)
|
||||
|
|
@ -274,9 +284,12 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
|
|||
let realm = required_env("REMORA_OIDC_TENANT");
|
||||
let client_id = required_env("REMORA_OIDC_CLIENT_ID");
|
||||
let username = required_env("REMORA_OIDC_USERNAME");
|
||||
let keycloak_url = keycloak_admin_url();
|
||||
let client = Client::new();
|
||||
let admin_response = client
|
||||
.post("http://keycloak.remora.test:8080/realms/master/protocol/openid-connect/token")
|
||||
.post(format!(
|
||||
"{keycloak_url}/realms/master/protocol/openid-connect/token"
|
||||
))
|
||||
.form(&[
|
||||
("grant_type", "password"),
|
||||
("client_id", "admin-cli"),
|
||||
|
|
@ -295,7 +308,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
|
|||
.ok_or_else(|| "keycloak admin token missing".to_owned())?;
|
||||
let users: Value = client
|
||||
.get(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users?username={username}&exact=true"
|
||||
"{keycloak_url}/admin/realms/{realm}/users?username={username}&exact=true"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.send()
|
||||
|
|
@ -311,7 +324,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
|
|||
.ok_or_else(|| "keycloak user missing".to_owned())?;
|
||||
let clients: Value = client
|
||||
.get(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients?clientId={client_id}"
|
||||
"{keycloak_url}/admin/realms/{realm}/clients?clientId={client_id}"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.send()
|
||||
|
|
@ -327,7 +340,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
|
|||
.ok_or_else(|| "keycloak client missing".to_owned())?;
|
||||
let roles: Value = client
|
||||
.get(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/clients/{client_uuid}/roles"
|
||||
"{keycloak_url}/admin/realms/{realm}/clients/{client_uuid}/roles"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.send()
|
||||
|
|
@ -350,7 +363,7 @@ async fn restore_keycloak_remora_roles() -> Result<(), String> {
|
|||
.collect::<Vec<_>>();
|
||||
let response = client
|
||||
.post(format!(
|
||||
"http://keycloak.remora.test:8080/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
"{keycloak_url}/admin/realms/{realm}/users/{user_id}/role-mappings/clients/{client_uuid}"
|
||||
))
|
||||
.bearer_auth(admin_token)
|
||||
.json(&roles)
|
||||
|
|
|
|||
Loading…
Reference in a new issue