public function login(string $username, string $password)
{
// query whether or not we're already authenticated or not
if ($this->getAuthType() != null || $this->getRemoteUser() != null || $this->getUserPrincipal() != null) {
throw new ServletException('Already authenticated');
}
// load the authentication manager and try to authenticate this request
/** @var \AppserverIo\Appserver\ServletEngine\Authentication\AuthenticationManagerInterface $authenticationManager */
if ($authenticationManager = $this->getAuthenticationManager()) {
// try to load the authentication managers default authenticator
if (($authenticator = $authenticationManager->getAuthenticator()) == null) {
throw new ServletException('Can\'t find default authenticator');
}
// authenticate the passed username/password combination
$authenticator->login($username, $password, $this);
}
}