PHP code example of waglpz / webapp-security
1. Go to this page and download the library: Download waglpz/webapp-security library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
waglpz / webapp-security example snippets
$users = [
[
'username' => '[email protected] ',
'role' => 'ROLE_TESTER',
'password' => 'xxxxxx123',
],
];
$authDataAdapter = new \Waglpz\Webapp\Security\CredentialDataAdapterInMemory($users);
$authenticator = new \Waglpz\Webapp\Security\AuthenticatorBasic($authDataAdapter);
/*
* $request contains valid user "[email protected] " and password "xxxxxx123"
*/
$request;
\assert($request instanceof \Psr\Http\Message\ServerRequestInterface);
$authResult = $authenticator->authenticate($request);
\assert($authResult);
\assert($authenticator->username() === '[email protected] ');
$users = [
[
'username' => '[email protected] ',
'role' => 'ROLE_TESTER',
'password' => 'xxxxxx123',
],
];
$authDataAdapter = new \Waglpz\Webapp\Security\CredentialDataAdapterInMemory($users);
$rolesFinder = new \Waglpz\Webapp\Security\UserAuthRolesProvider($authDataAdapter);
$roles = $rolesFinder->findRole('[email protected] ');
\assert($roles === ['ROLE_TESTER'])
$rules = [
'/abc-route' => ['ROLE_TESTER'],
];
$users = [
[
'username' => '[email protected] ',
'role' => 'ROLE_TESTER',
'password' => 'xxxxxx123',
],
];
$authDataAdapter = new \Waglpz\Webapp\Security\CredentialDataAdapterInMemory($users);
$rolesFinder = new \Waglpz\Webapp\Security\UserAuthRolesProvider($authDataAdapter);
$roles = $rolesFinder->findRole('[email protected] ');
\assert($roles === ['ROLE_TESTER'])
$firewall = new \Waglpz\Webapp\Security\Firewall($rules);
$request;
\assert($request instanceof \Psr\Http\Message\ServerRequestInterface);
try {
$firewall->checkRules($request,$currentRoles);
} catch (\Waglpz\Webapp\Security\Forbidden $exception) {
// this block will not execute, because user current role was matched for route in rules
}