summaryrefslogtreecommitdiffstats
path: root/3rdparty/Sabre/DAV/Auth/Backend/Apache.php
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/Sabre/DAV/Auth/Backend/Apache.php')
-rwxr-xr-x3rdparty/Sabre/DAV/Auth/Backend/Apache.php62
1 files changed, 62 insertions, 0 deletions
diff --git a/3rdparty/Sabre/DAV/Auth/Backend/Apache.php b/3rdparty/Sabre/DAV/Auth/Backend/Apache.php
new file mode 100755
index 00000000000..d4294ea4d86
--- /dev/null
+++ b/3rdparty/Sabre/DAV/Auth/Backend/Apache.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * Apache authenticator
+ *
+ * This authentication backend assumes that authentication has been
+ * configured in apache, rather than within SabreDAV.
+ *
+ * Make sure apache is properly configured for this to work.
+ *
+ * @package Sabre
+ * @subpackage DAV
+ * @copyright Copyright (C) 2007-2012 Rooftop Solutions. All rights reserved.
+ * @author Evert Pot (http://www.rooftopsolutions.nl/)
+ * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License
+ */
+class Sabre_DAV_Auth_Backend_Apache implements Sabre_DAV_Auth_IBackend {
+
+ /**
+ * Current apache user
+ *
+ * @var string
+ */
+ protected $remoteUser;
+
+ /**
+ * Authenticates the user based on the current request.
+ *
+ * If authentication is successful, true must be returned.
+ * If authentication fails, an exception must be thrown.
+ *
+ * @param Sabre_DAV_Server $server
+ * @param string $realm
+ * @return bool
+ */
+ public function authenticate(Sabre_DAV_Server $server, $realm) {
+
+ $remoteUser = $server->httpRequest->getRawServerValue('REMOTE_USER');
+ if (is_null($remoteUser)) {
+ throw new Sabre_DAV_Exception('We did not receive the $_SERVER[REMOTE_USER] property. This means that apache might have been misconfigured');
+ }
+
+ $this->remoteUser = $remoteUser;
+ return true;
+
+ }
+
+ /**
+ * Returns information about the currently logged in user.
+ *
+ * If nobody is currently logged in, this method should return null.
+ *
+ * @return array|null
+ */
+ public function getCurrentUser() {
+
+ return $this->remoteUser;
+
+ }
+
+}
+