This commit is contained in:
@@ -224,10 +224,78 @@ public abstract class HttpBaseServlet extends HttpServlet {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 预执行方法,在execute方法之前运行,通常用于常规统计或基础检测,例如 : <br>
|
||||||
|
* <blockquote><pre>
|
||||||
|
* @Override
|
||||||
|
* public void preExecute(final HttpRequest request, final HttpResponse response, HttpServlet next) throws IOException {
|
||||||
|
* if (finer) response.setRecycleListener((req, resp) -> { //记录处理时间比较长的请求
|
||||||
|
* long e = System.currentTimeMillis() - ((HttpRequest) req).getCreatetime();
|
||||||
|
* if (e > 200) logger.finer("http-execute-cost-time: " + e + " ms. request = " + req);
|
||||||
|
* });
|
||||||
|
* next.execute(request, response);
|
||||||
|
* }
|
||||||
|
* </pre></blockquote>
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* @param request HttpRequest
|
||||||
|
* @param response HttpResponse
|
||||||
|
* @param next HttpServlet
|
||||||
|
*
|
||||||
|
* @throws IOException IOException
|
||||||
|
*/
|
||||||
public void preExecute(HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException {
|
public void preExecute(HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException {
|
||||||
next.execute(request, response);
|
next.execute(request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用 public void authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException 代替
|
||||||
|
*
|
||||||
|
* @param moduleid int
|
||||||
|
* @param actionid int
|
||||||
|
* @param request HttpRequest
|
||||||
|
* @param response HttpResponse
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
* @throws IOException IOException
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public boolean authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response) throws IOException {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 用户登录或权限验证, 没有注解为@AuthIgnore 的方法会执行authenticate方法, 若验证成功则必须调用next.execute(request, response);进行下一步操作, 例如: <br>
|
||||||
|
* <blockquote><pre>
|
||||||
|
* @Override
|
||||||
|
* public void authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException {
|
||||||
|
* UserInfo info = currentUser(request);
|
||||||
|
* if (info == null) {
|
||||||
|
* response.finishJson(RET_UNLOGIN);
|
||||||
|
* return;
|
||||||
|
* } else if (!info.checkAuth(module, actionid)) {
|
||||||
|
* response.finishJson(RET_AUTHILLEGAL);
|
||||||
|
* return;
|
||||||
|
* }
|
||||||
|
* next.execute(request, response);
|
||||||
|
* }
|
||||||
|
* </pre></blockquote>
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param moduleid int
|
||||||
|
* @param actionid int
|
||||||
|
* @param request HttpRequest
|
||||||
|
* @param response HttpResponse
|
||||||
|
* @param next HttpServlet
|
||||||
|
*
|
||||||
|
* @throws IOException IOException
|
||||||
|
*/
|
||||||
|
public abstract void authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final void execute(HttpRequest request, HttpResponse response) throws IOException {
|
public final void execute(HttpRequest request, HttpResponse response) throws IOException {
|
||||||
preExecute(request, response, preSuccessServlet);
|
preExecute(request, response, preSuccessServlet);
|
||||||
@@ -250,25 +318,6 @@ public abstract class HttpBaseServlet extends HttpServlet {
|
|||||||
public final void postDestroy(HttpContext context, AnyValue config) {
|
public final void postDestroy(HttpContext context, AnyValue config) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 使用 public void authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException 代替
|
|
||||||
*
|
|
||||||
* @param moduleid moduleid
|
|
||||||
* @param actionid actionid
|
|
||||||
* @param request HttpRequest
|
|
||||||
* @param response HttpResponse
|
|
||||||
*
|
|
||||||
* @return boolean
|
|
||||||
* @throws IOException IOException
|
|
||||||
* @deprecated
|
|
||||||
*/
|
|
||||||
@Deprecated
|
|
||||||
public boolean authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response) throws IOException {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void authenticate(int moduleid, int actionid, HttpRequest request, HttpResponse response, final HttpServlet next) throws IOException;
|
|
||||||
|
|
||||||
protected void setHeader(HttpRequest request, String name, Serializable value) {
|
protected void setHeader(HttpRequest request, String name, Serializable value) {
|
||||||
request.header.setValue(name, String.valueOf(value));
|
request.header.setValue(name, String.valueOf(value));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user