refactor: remove login landing page, redirect to Keycloak directly
All checks were successful
CI / Format (pull_request) Successful in 3s
CI / Detect Changes (pull_request) Has been skipped
CI / Deploy Agent (push) Has been skipped
CI / Deploy MCP (push) Has been skipped
CI / Deploy Agent (pull_request) Has been skipped
CI / Format (push) Successful in 21s
CI / Clippy (push) Successful in 3m50s
CI / Security Audit (push) Has been skipped
CI / Tests (push) Has been skipped
CI / Clippy (pull_request) Successful in 3m49s
CI / Security Audit (pull_request) Has been skipped
CI / Tests (pull_request) Has been skipped
CI / Detect Changes (push) Has been skipped
CI / Deploy Dashboard (push) Has been skipped
CI / Deploy Docs (push) Has been skipped
CI / Deploy Dashboard (pull_request) Has been skipped
CI / Deploy Docs (pull_request) Has been skipped
CI / Deploy MCP (pull_request) Has been skipped

Unauthenticated users are now redirected straight to /auth (Keycloak)
instead of seeing a custom landing page. Removed LoginPage component
and all associated CSS.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Sharang Parnerkar
2026-03-09 09:02:22 +01:00
parent 1bf25525d8
commit be019b5d4c
2 changed files with 7 additions and 217 deletions

View File

@@ -24,12 +24,13 @@ pub fn AppShell() -> Element {
}
}
}
Some(Ok(_)) => {
rsx! { LoginPage {} }
}
Some(Err(e)) => {
tracing::error!("Auth check failed: {e}");
rsx! { LoginPage {} }
Some(Ok(_)) | Some(Err(_)) => {
// Not authenticated — redirect to Keycloak login
rsx! {
document::Script {
dangerous_inner_html: "window.location.href = '/auth';"
}
}
}
None => {
rsx! {
@@ -40,73 +41,3 @@ pub fn AppShell() -> Element {
}
}
}
#[component]
fn LoginPage() -> Element {
rsx! {
div { class: "login-page",
div { class: "login-bg-grid" }
div { class: "login-bg-glow" }
div { class: "login-container",
div { class: "login-card",
div { class: "login-logo",
svg {
width: "48",
height: "48",
view_box: "0 0 24 24",
fill: "none",
stroke: "currentColor",
stroke_width: "1.5",
stroke_linecap: "round",
stroke_linejoin: "round",
path { d: "M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" }
path { d: "M9 12l2 2 4-4" }
}
}
h1 { class: "login-title", "Compliance Scanner" }
p { class: "login-subtitle",
"AI-powered security scanning, SBOM analysis, and compliance monitoring"
}
div { class: "login-features",
div { class: "login-feature",
span { class: "login-feature-icon", "\u{25C6}" }
span { "SAST & CVE Detection" }
}
div { class: "login-feature",
span { class: "login-feature-icon", "\u{25C6}" }
span { "SBOM & License Compliance" }
}
div { class: "login-feature",
span { class: "login-feature-icon", "\u{25C6}" }
span { "Code Knowledge Graph" }
}
div { class: "login-feature",
span { class: "login-feature-icon", "\u{25C6}" }
span { "DAST & Impact Analysis" }
}
}
a {
href: "/auth",
class: "login-button",
svg {
width: "20",
height: "20",
view_box: "0 0 24 24",
fill: "none",
stroke: "currentColor",
stroke_width: "2",
stroke_linecap: "round",
stroke_linejoin: "round",
rect { x: "3", y: "11", width: "18", height: "11", rx: "2", ry: "2" }
path { d: "M7 11V7a5 5 0 0 1 10 0v4" }
}
span { "Sign in to continue" }
}
p { class: "login-footer",
"Secured with single sign-on"
}
}
}
}
}
}