public override LoginResult process(LoginData loginData)
        {
            if (loginData.getUser() == null)
            {
                var username = loginData.getUsername();
                var ip       = loginData.getRequest().getRemoteAddress();
                this.logger.warning($"Login failed: {username} (Remote IP: {ip})");
                return(LoginResult.failure(loginData, "invalidpassword"));
            }

            return(this.processNextOrFinishSuccessfully(loginData));
        }
        public override LoginResult process(LoginData data)
        {
            var user = this.userManager.get(data.getUsername());

            if (user != null && user.isEnabled() == false)
            {
                var username = data.getUsername();
                var ip       = data.getRequest().getRemoteAddress();
                logger.warning($"Login failed: {username} disabled (Remote IP: {ip}");
                return(LoginResult.failure(data, "userdisabled"));
            }

            return(this.processNextOrFinishSuccessfully(data));
        }
        public override LoginResult process(LoginData loginData)
        {
            var tokenType = RememberType.REMEMBER;

            if (this.config.getSystemValueInt("remember_login_cookie_lifetime", 60 * 60 * 24 * 15) == 0)
            {
                loginData.setRememberLogin(false);
                tokenType = RememberType.DO_NOT_REMEMBER;
            }
            this.userSession.createSessionToken(
                loginData.getRequest(), loginData.getUser().getUID(), loginData.getUsername(), loginData.getPassword(), (int)tokenType
                );
            this.userSession.updateTokens(loginData.getUser().getUID(), loginData.getPassword());
            return(processNextOrFinishSuccessfully(loginData));
        }