PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.0.7
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.0.7
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Auth.php
matomo / app / core Last commit date
API 2 years ago Access 2 years ago Application 2 years ago Archive 2 years ago ArchiveProcessor 2 years ago Archiver 2 years ago AssetManager 2 years ago Auth 2 years ago Category 2 years ago Changes 2 years ago CliMulti 2 years ago Columns 2 years ago Concurrency 2 years ago Config 2 years ago Container 2 years ago CronArchive 2 years ago DataAccess 2 years ago DataFiles 2 years ago DataTable 2 years ago Db 2 years ago DeviceDetector 2 years ago Email 2 years ago Exception 2 years ago Http 2 years ago Intl 2 years ago Log 2 years ago Mail 2 years ago Measurable 2 years ago Menu 2 years ago Metrics 2 years ago Notification 2 years ago Period 2 years ago Plugin 2 years ago ProfessionalServices 2 years ago Report 2 years ago ReportRenderer 2 years ago Scheduler 2 years ago Segment 2 years ago Session 2 years ago Settings 2 years ago Tracker 2 years ago Translation 2 years ago Twig 2 years ago UpdateCheck 2 years ago Updater 2 years ago Updates 2 years ago Validators 2 years ago View 2 years ago ViewDataTable 2 years ago Visualization 2 years ago Widget 2 years ago .htaccess 2 years ago Access.php 2 years ago Archive.php 2 years ago ArchiveProcessor.php 2 years ago AssetManager.php 2 years ago Auth.php 2 years ago AuthResult.php 2 years ago BaseFactory.php 2 years ago Cache.php 2 years ago CacheId.php 2 years ago CliMulti.php 2 years ago Common.php 2 years ago Config.php 2 years ago Console.php 2 years ago Context.php 2 years ago Cookie.php 2 years ago CronArchive.php 2 years ago DI.php 2 years ago DataArray.php 2 years ago DataTable.php 2 years ago Date.php 2 years ago Db.php 2 years ago DbHelper.php 2 years ago Development.php 2 years ago ErrorHandler.php 2 years ago EventDispatcher.php 2 years ago ExceptionHandler.php 2 years ago FileIntegrity.php 2 years ago Filechecks.php 2 years ago Filesystem.php 2 years ago FrontController.php 2 years ago Http.php 2 years ago IP.php 2 years ago Log.php 2 years ago LogDeleter.php 2 years ago Mail.php 2 years ago Metrics.php 2 years ago NoAccessException.php 2 years ago Nonce.php 2 years ago Notification.php 2 years ago NumberFormatter.php 2 years ago Option.php 2 years ago Period.php 2 years ago Piwik.php 2 years ago Plugin.php 2 years ago Profiler.php 2 years ago ProxyHeaders.php 2 years ago ProxyHttp.php 2 years ago QuickForm2.php 2 years ago RankingQuery.php 2 years ago ReportRenderer.php 2 years ago Request.php 2 years ago Segment.php 2 years ago Sequence.php 2 years ago Session.php 2 years ago SettingsPiwik.php 2 years ago SettingsServer.php 2 years ago Singleton.php 2 years ago Site.php 2 years ago SiteContentDetector.php 2 years ago SupportedBrowser.php 2 years ago TCPDF.php 2 years ago Theme.php 2 years ago Timer.php 2 years ago Tracker.php 2 years ago Twig.php 2 years ago Unzip.php 2 years ago UpdateCheck.php 2 years ago Updater.php 2 years ago UpdaterErrorException.php 2 years ago Updates.php 2 years ago Url.php 2 years ago UrlHelper.php 2 years ago Version.php 2 years ago View.php 2 years ago bootstrap.php 2 years ago dispatch.php 2 years ago testMinimumPhpVersion.php 2 years ago
Auth.php
115 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 *
9 */
10 namespace Piwik;
11
12 use Exception;
13 /**
14 * Base interface for authentication implementations.
15 *
16 * Plugins that provide Auth implementations must provide a class that implements
17 * this interface. Additionally, an instance of that class must be set in the
18 * container with the 'Piwik\Auth' key during the
19 * [Request.initAuthenticationObject](https://developer.matomo.org/api-reference/events#requestinitauthenticationobject)
20 * event.
21 *
22 * Authentication implementations must support authentication via username and
23 * clear-text password and authentication via username and token auth. They can
24 * additionally support authentication via username and an MD5 hash of a password. If
25 * they don't support it, then [formless authentication](https://matomo.org/faq/how-to/faq_30/) will fail.
26 *
27 * Derived implementations should favor authenticating by password over authenticating
28 * by token auth. That is to say, if a token auth and a password are set, password
29 * authentication should be used.
30 *
31 * ### Examples
32 *
33 * **How an Auth implementation will be used**
34 *
35 * // authenticating by password
36 * $auth = StaticContainer::get('Piwik\Auth');
37 * $auth->setLogin('user');
38 * $auth->setPassword('password');
39 * $result = $auth->authenticate();
40 *
41 * // authenticating by token auth
42 * $auth = StaticContainer::get('Piwik\Auth');
43 * $auth->setLogin('user');
44 * $auth->setTokenAuth('...');
45 * $result = $auth->authenticate();
46 *
47 * @api
48 */
49 interface Auth
50 {
51 /**
52 * Must return the Authentication module's name, e.g., `"Login"`.
53 *
54 * @return string
55 */
56 public function getName();
57 /**
58 * Sets the authentication token to authenticate with.
59 *
60 * @param string $token_auth authentication token
61 */
62 public function setTokenAuth($token_auth);
63 /**
64 * Returns the login of the user being authenticated.
65 *
66 * @return string
67 */
68 public function getLogin();
69 /**
70 * Returns the secret used to calculate a user's token auth.
71 *
72 * A users token auth is generated using the user's login and this secret. The secret
73 * should be specific to the user and not easily guessed. Piwik's default Auth implementation
74 * uses an MD5 hash of a user's password.
75 *
76 * @return string
77 * @throws Exception if the token auth secret does not exist or cannot be obtained.
78 */
79 public function getTokenAuthSecret();
80 /**
81 * Sets the login name to authenticate with.
82 *
83 * @param string $login The username.
84 */
85 public function setLogin($login);
86 /**
87 * Sets the password to authenticate with.
88 *
89 * @param string $password Password (not hashed).
90 */
91 public function setPassword($password);
92 /**
93 * Sets the hash of the password to authenticate with. The hash will be an MD5 hash.
94 *
95 * @param string $passwordHash The hashed password.
96 * @throws Exception if authentication by hashed password is not supported.
97 */
98 public function setPasswordHash($passwordHash);
99 /**
100 * Authenticates a user using the login and password set using the setters. Can also authenticate
101 * via token auth if one is set and no password is set.
102 *
103 * Note: this method must successfully authenticate if the token auth supplied is a special hash
104 * of the user's real token auth. This is because the SessionInitializer class stores a
105 * hash of the token auth in the session cookie. You can calculate the token auth hash using the
106 * {@link \Piwik\Plugins\Login\SessionInitializer::getHashTokenAuth()} method.
107 *
108 * @return AuthResult
109 * @throws Exception if the Auth implementation has an invalid state (ie, no login
110 * was specified). Note: implementations are not **required** to throw
111 * exceptions for invalid state, but they are allowed to.
112 */
113 public function authenticate();
114 }
115