diff --git a/src/sammo/API/Login/LoginByID.php b/src/sammo/API/Login/LoginByID.php index a71519bf..b12fdbc1 100644 --- a/src/sammo/API/Login/LoginByID.php +++ b/src/sammo/API/Login/LoginByID.php @@ -15,6 +15,8 @@ use sammo\Validator; class LoginByID extends \sammo\BaseAPI { + static array $sensitiveArgs = ['password']; + public function validateArgs(): ?string { $v = new Validator($this->args); diff --git a/src/sammo/API/Login/LoginByToken.php b/src/sammo/API/Login/LoginByToken.php index af8a9333..b8ef9a51 100644 --- a/src/sammo/API/Login/LoginByToken.php +++ b/src/sammo/API/Login/LoginByToken.php @@ -14,6 +14,7 @@ use sammo\Validator; class LoginByToken extends LoginByID { + static array $sensitiveArgs = ['hashedToken']; public function getRequiredSessionMode(): int { diff --git a/src/sammo/BaseAPI.php b/src/sammo/BaseAPI.php index 12c7ef75..a605d686 100644 --- a/src/sammo/BaseAPI.php +++ b/src/sammo/BaseAPI.php @@ -10,6 +10,18 @@ abstract class BaseAPI const REQ_GAME_LOGIN = 2; const REQ_READ_ONLY = 4; + static array $sensitiveArgs = []; + + public function getFilteredArgs(): array { + $filteredArgs = $this->args; + foreach (static::$sensitiveArgs as $argName) { + if (isset($filteredArgs[$argName])) { + $filteredArgs[$argName] = '***'; + } + } + return $filteredArgs; + } + protected array $args; protected string $rootPath; public function __construct(string $rootPath, array $args)