preparing svelte login, mastered translations
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.user;
|
||||
|
||||
import com.sun.net.httpserver.HttpExchange;
|
||||
import de.srsoftware.tools.MimeType;
|
||||
import de.srsoftware.tools.Path;
|
||||
import de.srsoftware.tools.PathHandler;
|
||||
import de.srsoftware.tools.SessionToken;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import static de.srsoftware.tools.MimeType.MIME_JSON;
|
||||
|
||||
|
||||
public class UserModule extends PathHandler {
|
||||
|
||||
private HttpExchange addCors(HttpExchange ex){
|
||||
var headers = ex.getResponseHeaders();
|
||||
headers.add("Allow-Origin","*");
|
||||
headers.add("Access-Control-Allow-Origin","*");
|
||||
headers.add("Access-Control-Allow-Headers","Content-Type");
|
||||
return ex;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doOptions(Path path, HttpExchange ex) throws IOException {
|
||||
return sendEmptyResponse(200,addCors(ex));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean doPost(Path path, HttpExchange ex) throws IOException {
|
||||
addCors(ex);
|
||||
var p = path.toString();
|
||||
switch (p){
|
||||
case "login": return postLogin(ex);
|
||||
}
|
||||
return super.doPost(path, ex);
|
||||
}
|
||||
|
||||
private boolean postLogin(HttpExchange ex) throws IOException {
|
||||
var json = json(ex);
|
||||
if (!(json.has("username") && json.get("username") instanceof String username)) return sendContent(ex,402,"Username missing");
|
||||
if (!(json.has("password") && json.get("password") instanceof String password)) return sendContent(ex,402,"Password missing");
|
||||
|
||||
if (!username.equals(password)) return sendContent(ex,401,"Login failed");
|
||||
var sessionId = UUID.randomUUID().toString();
|
||||
new SessionToken(sessionId).addTo(ex);
|
||||
ex.getResponseHeaders().add("Content-Type", MIME_JSON);
|
||||
return sendContent(ex,200,new JSONObject(Map.of("username",username)).toString());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user