diff --git a/src/dev/peerat/framework/RouteInterceptor.java b/src/dev/peerat/framework/RouteInterceptor.java index 34c7069..90feb0d 100644 --- a/src/dev/peerat/framework/RouteInterceptor.java +++ b/src/dev/peerat/framework/RouteInterceptor.java @@ -1,9 +1,10 @@ package dev.peerat.framework; +import java.lang.reflect.Method; import java.util.regex.Matcher; public interface RouteInterceptor{ - boolean intercept(Matcher matcher, Context context, HttpReader reader, HttpWriter writer); + boolean intercept(Matcher matcher, Context context, HttpReader reader, HttpWriter writer, Method method); } diff --git a/src/dev/peerat/framework/RouteMapper.java b/src/dev/peerat/framework/RouteMapper.java index 85f15b1..84c526f 100644 --- a/src/dev/peerat/framework/RouteMapper.java +++ b/src/dev/peerat/framework/RouteMapper.java @@ -42,14 +42,14 @@ public class RouteMapper{ } public boolean exec(Context context, HttpReader reader, HttpWriter writer, List interceptors) throws Exception{ - Response result = null; + Response response = null; + Method method = null; Matcher matcher = null; String path = context.getPath(); synchronized(responses){ for(int i = 0; i < responses.length; i++){ - Response response = responses[i]; Route route = routes[i]; Pattern pattern = patterns[i]; matcher = pattern.matcher(path); @@ -67,17 +67,18 @@ public class RouteMapper{ writer.response(401, router.getDefaultHeaders(context.getType())); return true; } + response = responses[i]; + method = methods[i]; order(i); - result = response; break; } } } - if(result != null){ + if(response != null){ for(RouteInterceptor interceptor : interceptors){ - if(!interceptor.intercept(matcher, context, reader, writer)) return true; + if(!interceptor.intercept(matcher, context, reader, writer, method)) return true; } - result.exec(matcher, context, reader, writer); + response.exec(matcher, context, reader, writer); return true; } return false;