diff --git a/plugins/auth_proxy/init.php b/plugins/auth_proxy/init.php new file mode 100644 index 00000000..67aaec64 --- /dev/null +++ b/plugins/auth_proxy/init.php @@ -0,0 +1,53 @@ +host = $host; + $this->base = new Auth_Base(); + + $host->add_hook($host::HOOK_AUTH_USER, $this); + } + + /** + * @SuppressWarnings(PHPMD.UnusedFormalParameter) + */ + function authenticate($login, $password) { + // TODO: check source ip! + if(!array_key_exists("HTTP_X_FORWARDED_USER", $_SERVER)) { + return false; + } + $try_login = $_SERVER["HTTP_X_FORWARDED_USER"]; + + if ($try_login) { + $user_id = $this->base->auto_create_user($try_login, $password); + + if ($user_id) { + $_SESSION["fake_login"] = $try_login; + $_SESSION["fake_password"] = "******"; + $_SESSION["hide_hello"] = true; + $_SESSION["hide_logout"] = true; + + return $user_id; + } + } + + return false; + } + + function api_version() { + return 2; + } + +}