在红石拦截器中访问当前路由元数据
Access current route metadata in redstone interceptor
如何从拦截器中访问路由或组元数据?
我想将 @public() 添加到路由中,例如:
@app.Route("/user/find/:id")
@public()
getUser(String id) => {"name": "User", "login": "user"};
并创建一个拦截器,阻止访问没有 public 元数据且没有登录用户的路由。这可能吗?
@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");
}
}
我在包中添加了一个选项,公开了方法镜像和组镜像。有了它,我可以检索所有 public 及其暴露的路由模式的方法。
如何从拦截器中访问路由或组元数据?
我想将 @public() 添加到路由中,例如:
@app.Route("/user/find/:id")
@public()
getUser(String id) => {"name": "User", "login": "user"};
并创建一个拦截器,阻止访问没有 public 元数据且没有登录用户的路由。这可能吗?
@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");
}
}
我在包中添加了一个选项,公开了方法镜像和组镜像。有了它,我可以检索所有 public 及其暴露的路由模式的方法。