2016-12-05 77 views
2

如何从拦截器内访问路由或组元数据?访问redstone拦截器中的当前路由元数据

我想补充一个@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"); 
    } 
} 

回答

2

我向包含方法镜像和组镜像的包添加了一个选项。有了这个,我可以检索所有暴露路由模式的公开方法。