aboutsummaryrefslogtreecommitdiff
path: root/lib/Authentication.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Authentication.php')
-rw-r--r--lib/Authentication.php49
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/Authentication.php b/lib/Authentication.php
index da247630..f9683940 100644
--- a/lib/Authentication.php
+++ b/lib/Authentication.php
@@ -1,6 +1,48 @@
<?php
+/**
+ * This file is part of RSS-Bridge, a PHP project capable of generating RSS and
+ * Atom feeds for websites that don't have one.
+ *
+ * For the full license information, please view the UNLICENSE file distributed
+ * with this source code.
+ *
+ * @package Core
+ * @license http://unlicense.org/ UNLICENSE
+ * @link https://github.com/rss-bridge/rss-bridge
+ */
+
+/**
+ * Authentication module for RSS-Bridge.
+ *
+ * This class implements an authentication module for RSS-Bridge, utilizing the
+ * HTTP authentication capabilities of PHP.
+ *
+ * _Notice_: Authentication via HTTP does not prevent users from accessing files
+ * on your server. If your server supports `.htaccess`, you should globally restrict
+ * access to files instead.
+ *
+ * @link https://php.net/manual/en/features.http-auth.php HTTP authentication with PHP
+ * @link https://httpd.apache.org/docs/2.4/howto/htaccess.html Apache HTTP Server
+ * Tutorial: .htaccess files
+ *
+ * @todo This class should respond with an error when creating an object from it.
+ * See {@see Bridge}, {@see Cache} or {@see Format} for reference.
+ * @todo Configuration parameters should be stored internally instead of accessing
+ * the configuration class directly.
+ * @todo Add functions to detect if a user is authenticated or not. This can be
+ * utilized for limiting access to authorized users only.
+ */
class Authentication {
+ /**
+ * Requests the user for login credentials if necessary.
+ *
+ * Responds to an authentication request or returns the `WWW-Authenticate`
+ * header if authentication is enabled in the configuration of RSS-Bridge
+ * (`[authentication] enable = true`).
+ *
+ * @return void
+ */
public static function showPromptIfNeeded() {
if(Configuration::getConfig('authentication', 'enable') === true) {
@@ -13,6 +55,13 @@ class Authentication {
}
+ /**
+ * Verifies if an authentication request was received and compares the
+ * provided username and password to the configuration of RSS-Bridge
+ * (`[authentication] username` and `[authentication] password`).
+ *
+ * @return bool True if authentication succeeded.
+ */
public static function verifyPrompt() {
if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {