Route Interceptor....with method is better
This commit is contained in:
parent
d6ca7c5092
commit
7bbfeea23a
2 changed files with 9 additions and 7 deletions
|
@ -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);
|
||||
|
||||
}
|
||||
|
|
|
@ -42,14 +42,14 @@ public class RouteMapper<U extends User>{
|
|||
}
|
||||
|
||||
public boolean exec(Context context, HttpReader reader, HttpWriter writer, List<RouteInterceptor> 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<U extends User>{
|
|||
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;
|
||||
|
|
Loading…
Add table
Reference in a new issue