![]() |
boost::taar::handler::guard — Run a check before a route's handler.
// In header: <boost/taar/handler/guard.hpp> template<typename Check, typename Inner> auto guard(Check check, Inner inner);
auto require_admin = [](http::request_header<> const& req, taar::matcher::context& ctx) { if (req[http::field::authorization] != "Bearer admin-token") return taar::reject(http::status::forbidden); ctx.attributes.set(principal {"admin"}); return taar::proceed(); }; session.register_request_handler( method == http::verb::delete_ && target == "/tasks/{id}", taar::handler::guard(require_admin, taar::handler::rest(&delete_task, path_arg("id"), attribute_arg<principal>())));
Parameters: |
|