drogonframework / drogon

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

使用drogon默认plugin GlobalFilters时,运行程序闪退 #1637

Closed huisangplay closed 1 year ago

huisangplay commented 1 year ago

Discussed in https://github.com/drogonframework/drogon/discussions/1636

Originally posted by **huisangplay** June 12, 2023 这是我的配置文件的内容 { "name": "drogon::plugin::GlobalFilters", "dependencies": [], "config": { "filters": [ "LoginFilter" ], "exempt": [ "^/static/.*\\.css", "^/images/.*","/UserController/loginPage" ] } } 这是我LoginFilter的内容 void LoginFilter::doFilter(const HttpRequestPtr &req, FilterCallback &&fcb, FilterChainCallback &&fccb) { auto session = req->session(); if (session && session->get("username") != "") { fccb(); } else { auto resp = drogon::HttpResponse::newHttpViewResponse(view::LOGIN_PAGE); fcb(resp); } } 在配置文件中添加globalfilter之前运行正常,添加后就闪退,不知道是bug还是我哪里没配置好

windows clion vs2022环境,drogon1.8+

huisangplay commented 1 year ago

编译问题,不是bug

an-tao commented 1 year ago

1640 感觉这个PR之后GlobalFilter才能工作,否则会抛异常

huisangplay commented 1 year ago

1640 感觉这个PR之后GlobalFilter才能工作,否则会抛异常

我使用了vcpkg中drogon1.8.0没有抛异常,自己在clion+vcpkg+msvc编译出的库运行还是会闪退,以为是自己编译出了问题,看来还是bug,谢谢解答!

huisangplay commented 1 year ago

1640 感觉这个PR之后GlobalFilter才能工作,否则会抛异常

我今天把修复后的代码重新拉下来编译发现在plugin中如果不填这个配置 "exempt": [ "^/static/.\.css", "^/images/." ] 可以正常运行,并且配置的filter也生效了,但是如果加上上面的配置就会闪退