2

如何从拦截器中访问路由或组元数据?

我想将 @public() 添加到如下路线:

@app.Route("/user/find/:id")
@public()
getUser(String id) => {"name": "User", "login": "user"};

并创建一个拦截器来阻止对没有公共元数据且没有登录用户的路由的访问。这可能吗?

@app.Interceptor(r'/admin/.*')
adminFilter() {
  if (app.request.session["username"] != null || CURRENT_ROUTE_HAS_PUBLIC_METADATA) {
    return app.chain.next();
  } else {
    return app.chain.abort(HttpStatus.UNAUTHORIZED);
    //or app.chain.redirect("/login.html");
  }
}
4

1 回答 1

2

我在包中添加了一个选项,该选项公开了方法镜像和组镜像。有了它,我可以检索所有公开的方法及其公开的路由模式。

于 2016-12-06T21:59:58.170 回答