- WIP on securing PostRequestAuth and began adding some LAN auth also
This commit is contained in:
1 parent
d149e0a741
commit
45546fbcc0
4 files changed
+107
-5
No files matched your search
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace Ulmus\User\Authorize;
|
||||
|
||||
use Psr\Http\Message\ServerRequestInterface;
|
||||
use Ulmus\User\Entity\UserInterface;
|
||||
use Ulmus\User\Lib\Authenticate;
|
||||
|
||||
class MacAddressAuthentication implements AuthorizeMethodInterface
|
||||
{
|
||||
public function __construct(
|
||||
public Authenticate $authenticate,
|
||||
protected string $fieldUser = "mac",
|
||||
) {}
|
||||
|
||||
public function connect(ServerRequestInterface $request, UserInterface $user): bool
|
||||
{
|
||||
$server = $request->getServerParams();
|
||||
|
||||
# var_dump($server, $this->getArpMacAddress($server['REMOTE_ADDR']));die();
|
||||
|
||||
return false;
|
||||
|
||||
return $this->authenticate->authenticate([ $this->fieldUser => $post[$this->postFieldUser] ], $post[$this->postFieldPassword]);
|
||||
}
|
||||
|
||||
public function catchRequest(ServerRequestInterface $request): bool
|
||||
{
|
||||
return true;
|
||||
|
||||
$post = $request->getParsedBody();
|
||||
|
||||
return strtoupper( $request->getMethod() ) === "POST" && isset($post[$this->postFieldUser], $post[$this->postFieldPassword]);
|
||||
}
|
||||
|
||||
protected function getArpMacAddress(string $ip) : ?string
|
||||
{
|
||||
#run the external command, break output into lines
|
||||
$arp = shell_exec(sprintf("arp -a %s", escapeshellarg($ip)));
|
||||
$lines = explode("\n", $arp);
|
||||
|
||||
#look for the output line describing our IP address
|
||||
foreach($lines as $line)
|
||||
{
|
||||
$cols = preg_split('/\s+/', trim($line));
|
||||
|
||||
if ($cols[0] === $ip)
|
||||
{
|
||||
return $cols[0];
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user