64 lines
1.9 KiB
Java
64 lines
1.9 KiB
Java
package be.jeffcheasey88.todo;
|
|
|
|
import static dev.peerat.framework.RequestType.OPTIONS;
|
|
|
|
import java.io.File;
|
|
import java.util.regex.Matcher;
|
|
|
|
import org.jose4j.lang.JoseException;
|
|
|
|
import be.jeffcheasey88.todo.model.JsonRepository;
|
|
import be.jeffcheasey88.todo.model.UserWorker;
|
|
import be.jeffcheasey88.todo.routes.users.Login;
|
|
import dev.peerat.framework.Context;
|
|
import dev.peerat.framework.HttpReader;
|
|
import dev.peerat.framework.HttpWriter;
|
|
import dev.peerat.framework.RequestType;
|
|
import dev.peerat.framework.Response;
|
|
import dev.peerat.framework.Route;
|
|
import dev.peerat.framework.Router;
|
|
|
|
public class Main {
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
Router<UserWorker> router = new Router<UserWorker>().configureJwt(
|
|
(builder) -> builder.setExpectedIssuer("http://localhost"),
|
|
(claims) -> {
|
|
claims.setIssuer("http://localhost"); // who creates the token and signs it
|
|
claims.setExpirationTimeMinutesInTheFuture(100);
|
|
},
|
|
(claims) -> new UserWorker(claims))
|
|
.addDefaultHeaders(RequestType.GET, "Access-Control-Allow-Origin: *")
|
|
.addDefaultHeaders(RequestType.POST, "Access-Control-Allow-Origin: *");
|
|
|
|
router.setDefault((matcher, context, reader, writer) -> {
|
|
context.response(404);
|
|
writer.write("404 not Found.\n");
|
|
});
|
|
|
|
router.register(new Response(){
|
|
@Route(path = "^(.*)$", type = OPTIONS)
|
|
@Override
|
|
public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception {
|
|
context.response(200,
|
|
"Access-Control-Allow-Origin: *",
|
|
"Access-Control-Allow-Methods: *",
|
|
"Access-Control-Allow-Headers: *"
|
|
);
|
|
}
|
|
});
|
|
|
|
JsonRepository json = new JsonRepository(new File("/home/todo/"), (username) -> {
|
|
try{
|
|
return router.createAuthUser(new UserWorker(username));
|
|
}catch(JoseException e){}
|
|
return null;
|
|
});
|
|
|
|
router.register(new Login(json));
|
|
|
|
router.listen(80, false);
|
|
}
|
|
|
|
}
|