updated dependencies on srsoftware.de packages
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -3,7 +3,8 @@ description = "SRSoftware OIDC: file datastore module"
|
||||
dependencies{
|
||||
implementation("com.sun.mail:jakarta.mail:2.0.1")
|
||||
implementation("de.srsoftware:tools.optionals:1.0.0")
|
||||
implementation("de.srsoftware:tools.util:1.1.0")
|
||||
implementation("de.srsoftware:tools.result:1.0.0")
|
||||
implementation("de.srsoftware:tools.util:1.3.1")
|
||||
implementation("org.json:json:20240303")
|
||||
|
||||
implementation(project(":de.srsoftware.oidc.api"))
|
||||
|
||||
@@ -4,16 +4,16 @@ import static de.srsoftware.oidc.api.Constants.*;
|
||||
import static de.srsoftware.oidc.api.data.User.*;
|
||||
import static de.srsoftware.tools.Optionals.nullable;
|
||||
import static de.srsoftware.tools.Strings.uuid;
|
||||
import static de.srsoftware.tools.result.Error.error;
|
||||
import static java.lang.System.Logger.Level.*;
|
||||
import static java.time.temporal.ChronoUnit.SECONDS;
|
||||
import static java.util.Optional.empty;
|
||||
|
||||
import de.srsoftware.oidc.api.*;
|
||||
import de.srsoftware.oidc.api.data.*;
|
||||
import de.srsoftware.tools.Error;
|
||||
import de.srsoftware.tools.PasswordHasher;
|
||||
import de.srsoftware.tools.Payload;
|
||||
import de.srsoftware.tools.Result;
|
||||
import de.srsoftware.tools.result.*;
|
||||
import de.srsoftware.tools.result.Error;
|
||||
import jakarta.mail.Authenticator;
|
||||
import jakarta.mail.PasswordAuthentication;
|
||||
import java.io.File;
|
||||
@@ -181,13 +181,14 @@ public class FileStore implements AuthorizationService, ClientService, SessionSe
|
||||
|
||||
@Override
|
||||
public Result<User> login(String username, String password) {
|
||||
if (!json.has(USERS)) return Error.of(ERROR_LOGIN_FAILED);
|
||||
if (username == null || username.isBlank()) return Error.of(ERROR_NO_USERNAME);
|
||||
if (!json.has(USERS)) return error(ERROR_LOGIN_FAILED);
|
||||
if (username == null || username.isBlank()) return error(ERROR_NO_USERNAME);
|
||||
var optLock = getLock(username);
|
||||
if (optLock.isPresent()) {
|
||||
var lock = optLock.get();
|
||||
LOG.log(WARNING, "{0} is locked after {1} failed logins. Lock will be released at {2}", username, lock.attempts(), lock.releaseTime());
|
||||
return new Error<User>(ERROR_LOCKED).addData(ATTEMPTS, lock.attempts(), RELEASE, lock.releaseTime());
|
||||
Error<User> err = error(ERROR_LOCKED);
|
||||
return err.addData(ATTEMPTS, lock.attempts(), RELEASE, lock.releaseTime());
|
||||
}
|
||||
try {
|
||||
var users = json.getJSONObject(USERS);
|
||||
@@ -203,9 +204,10 @@ public class FileStore implements AuthorizationService, ClientService, SessionSe
|
||||
}
|
||||
var lock = lock(username);
|
||||
LOG.log(WARNING, "Login failed for {0} → locking account until {1}", username, lock.releaseTime());
|
||||
return new Error<User>(ERROR_LOGIN_FAILED).addData(RELEASE, lock.releaseTime());
|
||||
Error<User> err = error(ERROR_LOGIN_FAILED);
|
||||
return err.addData(RELEASE, lock.releaseTime());
|
||||
} catch (Exception e) {
|
||||
return Error.of(ERROR_LOGIN_FAILED);
|
||||
return error(ERROR_LOGIN_FAILED);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user