improved error message display on login papge
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
@@ -6,6 +6,7 @@ public class Constants {
|
||||
public static final String ACCESS_TOKEN = "access_token";
|
||||
public static final String APP_NAME = "LightOIDC";
|
||||
public static final String AT_HASH = "at_hash";
|
||||
public static final String ATTEMPTS = "attempts";
|
||||
public static final String AUTH_CODE = "authorization_code";
|
||||
public static final String AUTHORZED = "authorized";
|
||||
public static final String BEARER = "Bearer";
|
||||
@@ -41,6 +42,7 @@ public class Constants {
|
||||
public static final String OPENID = "openid";
|
||||
public static final String REDIRECT_URI = "redirect_uri";
|
||||
public static final String REDIRECT_URIS = "redirect_uris";
|
||||
public static final String RELEASE = "release";
|
||||
public static final String REQUEST_NOT_SUPPORTED = "request_not_supported";
|
||||
public static final String RESPONSE_TYPE = "response_type";
|
||||
public static final String SALT = "salt";
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class Error<T> implements Result<T> {
|
||||
private final String cause;
|
||||
private Map<String, Object> metadata;
|
||||
|
||||
public Error(String cause) {
|
||||
this.cause = cause;
|
||||
}
|
||||
|
||||
public String cause() {
|
||||
return cause;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isError() {
|
||||
return true;
|
||||
}
|
||||
|
||||
public static <T> Error<T> message(String text) {
|
||||
return new Error<T>(text);
|
||||
}
|
||||
|
||||
public Error<T> metadata(Object... tokens) {
|
||||
metadata = new HashMap<String, Object>();
|
||||
for (int i = 0; i < tokens.length - 1; i += 2) {
|
||||
metadata.put(tokens[i].toString(), tokens[i + 1]);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
|
||||
public class Payload<T> implements Result<T> {
|
||||
private final T object;
|
||||
|
||||
public Payload(T object) {
|
||||
this.object = object;
|
||||
}
|
||||
|
||||
public static <T> Payload<T> of(T object) {
|
||||
return new Payload<>(object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isError() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public T get() {
|
||||
return object;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
/* © SRSoftware 2024 */
|
||||
package de.srsoftware.oidc.api;
|
||||
|
||||
public interface Result<T> {
|
||||
public boolean isError();
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import static java.util.Optional.empty;
|
||||
import de.srsoftware.oidc.api.data.AccessToken;
|
||||
import de.srsoftware.oidc.api.data.Lock;
|
||||
import de.srsoftware.oidc.api.data.User;
|
||||
import de.srsoftware.utils.Result;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
package de.srsoftware.oidc.api.data;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
|
||||
public class Lock {
|
||||
private int attempts;
|
||||
@@ -16,7 +17,7 @@ public class Lock {
|
||||
if (attempts > 13) attempts = 13;
|
||||
var seconds = 5;
|
||||
for (long i = 0; i < attempts; i++) seconds *= 2;
|
||||
releaseTime = Instant.now().plusSeconds(seconds);
|
||||
releaseTime = Instant.now().plusSeconds(seconds).truncatedTo(ChronoUnit.SECONDS);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user