drogonframework / drogon

Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
MIT License
11.04k stars 1.06k forks source link

preHandlingAdvice可能需要更多信息 #1982

Closed easyrock closed 3 months ago

easyrock commented 3 months ago

场景:使用 HttpController 派生类来开发业务 Controller ,实现基于 AOP 的权限验证,此时 HttpControllersRouter::CtrlBinder::handlerName_ 已经包含了足够的信息来识别具体是哪一个 Controller 的哪一个方法了。 问题:registerPreHandlingAdvice 注册的 advice 中没有提供这些信息 建议:针对 HttpSimpleController 和 HttpController 分别实现细节更多的 advice 注册机制

easyrock commented 3 months ago

或者说,在 HttpRequest::attributes 中存放这些额外的信息?以便在 advice 中取用

easyrock commented 3 months ago

感觉用 HttpRequest::matchedPathPatternData() 就能满足需求了