Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upMiddleware
中间件Middleware
HTTP 中间件为过滤访问你的应用的 HTTP 请求提供了一个方便的机制。
所有的中间件都要集成IMiddleware 并实现name和onProcess方法。假如只允许客户端IP=="10.1.11.31"才能访问,其他的都禁止;如下所示:
import hunt;
///ip filter
class IpFilterMiddleware : IMiddleware{
override string name() {
return IpFilterMiddleware.stringof;
}
//返回Response对象继续执行以后就不会访问到 Action 方法了,直接执行返回的 response 对象并且终止后面一切操作,对用户的请求进行拦截
override Response onProcess(Request req,Response res) {
if(req.clientIp == "10.1.11.31")
{
res.setHttpError(403);
return res;
}
return null;
}
}
-
-
注册全局分组中间件
在每一次调用该组的的action的时候都会执行一遍,注册方法如下。
import hunt.framework;
void main()
{
//default admin api
app().addGroupMiddleware("default" , new IpFilterMiddleware());
}
- 注册controller中间件
注册到controller的中间件,在每一次调用内部action的时候都会执行一遍,注册方法如下。
class UserController : Controller
{
///must be here
mixin MakeController;
this()
{
// Constructor code
this.addMiddleware(new UserMiddleware());
this.addMiddleware(new CheckIdMiddleware());
}
}
Press h to open a hovercard with more details.