1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- <?php
- class Auth_Proxy extends Plugin implements IAuthModule {
- private $host;
- /* @var Auth_Base $base */
- private $base;
- function about() {
- return array(1.0,
- "Trust proxy X-Forwarded-User. May be dangerous, see doc",
- "boyska",
- true);
- }
- /* @var PluginHost $host */
- function init($host ) {
- $this->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;
- }
- }
|