From d9d602bb8392b14b8b4654f3d901d6e0f956d029 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 <66554203+jeffcheasey88@users.noreply.github.com> Date: Fri, 8 Sep 2023 21:32:47 +0200 Subject: [PATCH] Add error 500 --- src/dev/peerat/framework/Client.java | 19 ++++++++++++++++--- src/dev/peerat/framework/Router.java | 4 ++++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/dev/peerat/framework/Client.java b/src/dev/peerat/framework/Client.java index ab2ffde..434cf14 100644 --- a/src/dev/peerat/framework/Client.java +++ b/src/dev/peerat/framework/Client.java @@ -3,6 +3,8 @@ package dev.peerat.framework; import java.net.Socket; import java.util.Arrays; +import org.jose4j.jwt.consumer.InvalidJwtException; + public class Client extends Thread{ private HttpReader reader; @@ -25,23 +27,34 @@ public class Client extends Thread{ System.out.println(Arrays.toString(headers)); reader.readHeaders(); - context = router.exec(RequestType.valueOf(headers[0]), headers[1], isLogin(reader), reader, writer); + RequestType type = RequestType.valueOf(headers[0]); + context = router.exec(type, headers[1], isLogin(router, type, reader), reader, writer); writer.flush(); writer.close(); + }catch(InvalidJwtException e){ + e.printStackTrace(); }catch(Exception e){ e.printStackTrace(); + if(context != null && context.getResponseCode() == 0){ + try{ + context.response(500); + writer.flush(); + writer.close(); + }catch(Exception ex){} + } } if(context != null) logger.setValue(context); } - private User isLogin(HttpReader reader) throws Exception{ + private User isLogin(Router router, RequestType type, HttpReader reader) throws Exception{ String auth = reader.getHeader("Authorization"); if(auth == null) return null; auth = auth.substring(7); try{ return this.router.getUser(auth); }catch(Exception e){ - writer.response(401, "Access-Control-Allow-Origin: *"); + e.printStackTrace(); + writer.response(401, router.getDefaultHeaders(type)); writer.flush(); writer.close(); throw e; diff --git a/src/dev/peerat/framework/Router.java b/src/dev/peerat/framework/Router.java index 3526fda..f5647cf 100644 --- a/src/dev/peerat/framework/Router.java +++ b/src/dev/peerat/framework/Router.java @@ -91,6 +91,10 @@ public class Router{ for(RouteMapper mapper : this.mappers) mapper.activeReOrdering(); return this; } + + String[] getDefaultHeaders(RequestType type){ + return this.headers[type.ordinal()]; + } Context exec(RequestType type, String path, User user, HttpReader reader, HttpWriter writer) throws Exception{ if(type == null) return null;