From f68162b80bcff932e50cd8bbc6f09e4bc7126603 Mon Sep 17 00:00:00 2001 From: Manuel Vichi Date: Thu, 2 Oct 2025 08:51:47 +0000 Subject: [PATCH] some changes --- htdocs/admin/login.php | 29 +++++++++++++++++++++++++---- htdocs/admin/login.php.keycloak | 19 ------------------- htdocs/admin/logout.php | 6 +++++- htdocs/admin/logout.php.keycloak | 5 ----- htdocs/config/config.php | 3 ++- htdocs/docenti.php | 2 +- htdocs/laboratori.php | 2 +- htdocs/studenti.php | 2 +- 8 files changed, 35 insertions(+), 33 deletions(-) delete mode 100644 htdocs/admin/login.php.keycloak delete mode 100644 htdocs/admin/logout.php.keycloak diff --git a/htdocs/admin/login.php b/htdocs/admin/login.php index 8ca8044..3753708 100644 --- a/htdocs/admin/login.php +++ b/htdocs/admin/login.php @@ -3,7 +3,7 @@ session_start(); include("../lib/db.php"); include("../config/config.php"); -if ($_SERVER["REQUEST_METHOD"] == "POST") { +if ($_SERVER["REQUEST_METHOD"] == "POST" && AUTH_TYPE === 'local') { $username = $_POST['username']; $password = $_POST['password']; $stmt = $conn->prepare("SELECT * FROM admin WHERE username = ?"); @@ -20,8 +20,8 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") { } $error = "Credenziali non valide"; } -?> - +if (AUTH_TYPE === 'local') { + echo ``` Login Admin @@ -49,4 +49,25 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {

Copyright (C) 2025 EmmeV. - Released under GNU AGPL 3.0 License.

- +```; +} +else if (AUTH_TYPE === 'keycloak') { + require 'vendor/autoload.php'; + use Jumbojett\OpenIDConnectClient; + session_start(); + // Configura il client Keycloak + $oidc = new OpenIDConnectClient( + 'https://' + KEYCLOAK_DOMAIN + '/realms/' + KEYCLOAK_REALM + '/', + KEYCLOAK_CLIENT_ID, + KEYCLOAK_CLIENT_SECRET + ); + // Redirect post-login + $oidc->setRedirectURL('https://' + APP_DOMAIN + '/admin/login.php'); + $oidc->authenticate(); + $userinfo = $oidc->getVerifiedClaims(); + $_SESSION['admin'] = $userinfo->preferred_username; + $_SESSION['auth_type'] = 'keycloak'; + header("Location: index.php"); + exit; +} +?> diff --git a/htdocs/admin/login.php.keycloak b/htdocs/admin/login.php.keycloak deleted file mode 100644 index ee100e4..0000000 --- a/htdocs/admin/login.php.keycloak +++ /dev/null @@ -1,19 +0,0 @@ -/realms//', - '', - '' -); -// Redirect post-login -$oidc->setRedirectURL('https:///admin/login.php'); - -$oidc->authenticate(); -$userinfo = $oidc->getVerifiedClaims(); -$_SESSION['admin'] = $userinfo->preferred_username; -$_SESSION['auth_type'] = 'keycloak'; -header("Location: index.php"); -exit; diff --git a/htdocs/admin/logout.php b/htdocs/admin/logout.php index 3abdd6e..1269459 100644 --- a/htdocs/admin/logout.php +++ b/htdocs/admin/logout.php @@ -1,5 +1,9 @@ diff --git a/htdocs/admin/logout.php.keycloak b/htdocs/admin/logout.php.keycloak deleted file mode 100644 index 02d5aea..0000000 --- a/htdocs/admin/logout.php.keycloak +++ /dev/null @@ -1,5 +0,0 @@ -/realms//protocol/openid-connect/logout?post_logout_redirect_uri=https://&client_id='); -exit; diff --git a/htdocs/config/config.php b/htdocs/config/config.php index 6000c30..bbab6f3 100644 --- a/htdocs/config/config.php +++ b/htdocs/config/config.php @@ -12,5 +12,6 @@ define('AUTH_TYPE','local'); // Può essere keycloak o local (integrata) define('KEYCLOAK_DOMAIN',''); define('KEYCLOAK_REALM',''); define('KEYCLOAK_CLIENT_ID',''); -define('KEYCLOAK_CLIENT_SECRET','') +define('KEYCLOAK_CLIENT_SECRET',''); +define('APP_DOMAIN',''); ?> \ No newline at end of file diff --git a/htdocs/docenti.php b/htdocs/docenti.php index 1dca8d7..47458b3 100644 --- a/htdocs/docenti.php +++ b/htdocs/docenti.php @@ -38,7 +38,7 @@ if ($res->num_rows === 0) {