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;
|
package dev.peerat.framework;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
|
|
||||||
public interface RouteInterceptor{
|
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{
|
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;
|
Matcher matcher = null;
|
||||||
|
|
||||||
String path = context.getPath();
|
String path = context.getPath();
|
||||||
|
|
||||||
synchronized(responses){
|
synchronized(responses){
|
||||||
for(int i = 0; i < responses.length; i++){
|
for(int i = 0; i < responses.length; i++){
|
||||||
Response response = responses[i];
|
|
||||||
Route route = routes[i];
|
Route route = routes[i];
|
||||||
Pattern pattern = patterns[i];
|
Pattern pattern = patterns[i];
|
||||||
matcher = pattern.matcher(path);
|
matcher = pattern.matcher(path);
|
||||||
|
@ -67,17 +67,18 @@ public class RouteMapper<U extends User>{
|
||||||
writer.response(401, router.getDefaultHeaders(context.getType()));
|
writer.response(401, router.getDefaultHeaders(context.getType()));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
response = responses[i];
|
||||||
|
method = methods[i];
|
||||||
order(i);
|
order(i);
|
||||||
result = response;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(result != null){
|
if(response != null){
|
||||||
for(RouteInterceptor interceptor : interceptors){
|
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 true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Add table
Reference in a new issue