working on SqliteUserService:

user creation and list works, upsert needs to be done

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2024-09-08 11:05:43 +02:00
parent 9124ff570e
commit 8865b19fae
9 changed files with 43 additions and 31 deletions

View File

@@ -23,8 +23,8 @@ public class ClientController extends Controller {
private final AuthorizationService authorizations;
private final ClientService clients;
public ClientController(AuthorizationService authorizationService, ClientService clientService, SessionService sessionService) {
super(sessionService);
public ClientController(AuthorizationService authorizationService, ClientService clientService, SessionService sessionService, UserService userService) {
super(sessionService, userService);
authorizations = authorizationService;
clients = clientService;
}

View File

@@ -5,17 +5,20 @@ import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.http.PathHandler;
import de.srsoftware.http.SessionToken;
import de.srsoftware.oidc.api.SessionService;
import de.srsoftware.oidc.api.UserService;
import de.srsoftware.oidc.api.data.Session;
import java.util.Optional;
public abstract class Controller extends PathHandler {
protected final SessionService sessions;
private final UserService users;
Controller(SessionService sessionService) {
Controller(SessionService sessionService, UserService userService) {
sessions = sessionService;
users = userService;
}
protected Optional<Session> getSession(HttpExchange ex) {
return SessionToken.from(ex).map(SessionToken::sessionId).flatMap(sessions::retrieve);
return SessionToken.from(ex).map(SessionToken::sessionId).flatMap(sessionId -> sessions.retrieve(sessionId, users));
}
}

View File

@@ -9,14 +9,15 @@ import static java.net.HttpURLConnection.HTTP_UNAUTHORIZED;
import com.sun.net.httpserver.HttpExchange;
import de.srsoftware.oidc.api.MailConfig;
import de.srsoftware.oidc.api.SessionService;
import de.srsoftware.oidc.api.UserService;
import de.srsoftware.oidc.api.data.Session;
import java.io.IOException;
public class EmailController extends Controller {
private final MailConfig mailConfig;
public EmailController(MailConfig mailConfig, SessionService sessionService) {
super(sessionService);
public EmailController(MailConfig mailConfig, SessionService sessionService, UserService userService) {
super(sessionService, userService);
this.mailConfig = mailConfig;
}

View File

@@ -30,7 +30,7 @@ public class UserController extends Controller {
private final ResourceLoader resourceLoader;
public UserController(MailConfig mailConfig, SessionService sessionService, UserService userService, ResourceLoader resourceLoader) {
super(sessionService);
super(sessionService, userService);
users = userService;
this.mailConfig = mailConfig;
this.resourceLoader = resourceLoader;
@@ -40,7 +40,10 @@ public class UserController extends Controller {
if (!user.hasPermission(MANAGE_USERS)) return sendEmptyResponse(HTTP_FORBIDDEN, ex);
var json = json(ex);
var newID = uuid();
User.of(json, uuid()).ifPresent(u -> users.updatePassword(u, json.getString(PASSWORD)));
User.of(json, uuid()).ifPresent(newUser -> {
users.save(newUser);
users.updatePassword(newUser, json.getString(PASSWORD));
});
return sendContent(ex, newID);
}