bugfixes in token handling, added session duration property to user

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2024-08-11 00:08:05 +02:00
parent 674db5d843
commit 5057b54bef
9 changed files with 107 additions and 37 deletions

View File

@@ -111,7 +111,7 @@ public class TokenController extends PathHandler {
String jwToken = createJWT(client, user.get());
ex.getResponseHeaders().add("Cache-Control", "no-store");
JSONObject response = new JSONObject();
response.put(ACCESS_TOKEN, users.accessToken(user.get()));
response.put(ACCESS_TOKEN, users.accessToken(user.get()).id());
response.put(TOKEN_TYPE, BEARER);
response.put(EXPIRES_IN, 3600);
response.put(ID_TOKEN, jwToken);

View File

@@ -17,6 +17,7 @@ import de.srsoftware.oidc.api.data.User;
import jakarta.mail.*;
import jakarta.mail.internet.*;
import java.io.IOException;
import java.time.Duration;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
@@ -130,7 +131,7 @@ public class UserController extends Controller {
}
if (!strong(newPass1)) return sendContent(ex, HTTP_BAD_REQUEST, "weak password");
var token = data.getString(TOKEN);
var optUser = users.forToken(token);
var optUser = users.consumeToken(token);
if (optUser.isEmpty()) return sendContent(ex, HTTP_UNAUTHORIZED, "invalid token");
var user = optUser.get();
users.updatePassword(user, newPass1);
@@ -256,6 +257,7 @@ public class UserController extends Controller {
user.username(json.getString(USERNAME));
user.email(json.getString(EMAIL));
user.realName(json.getString(REALNAME));
user.sessionDuration(Duration.ofMinutes(json.getInt(SESSION_DURATION)));
users.save(user);
return sendContent(ex, user.map(false));
}