¿Cómo puedo acceder a una ruta o metadatos de grupo desde un interceptor?

Me gustaría agregar un @public () a una ruta como:

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

Y crear un interceptor que bloquee el acceso a las rutas que no tienen los metadatos públicos y no hay ningún usuario registrado. es posible?

@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
Jonathan 5 dic. 2016 a las 22:47

1 respuesta

La mejor respuesta

Agregué una opción al paquete que expone el método espejo y el grupo espejo. Con eso, pude recuperar todos los métodos que son públicos con su patrón de ruta expuesto.

2
Jonathan 7 dic. 2016 a las 00:59