routes - Vaadin (Flow) 21 从 20 升级 - 所有路线突然返回 404
问题描述
我最近尝试从 Vaadin 20 升级到 Vaadin 21。我按照升级指南进行操作,一切似乎都很好地开始,没有任何错误消息。但是当我尝试导航到任何路线时,只有我的路线MainLayout
被加载并且里面的所有内容都加载了未找到的页面(对于每条路线),日志中没有错误消息。在我看来,无论是可公开访问还是登录,路线都没有正确填充。
堆:
- 瓦丁 21.0.2
- 春季启动 2.4.4
- JDK 11
示例页面的标题配置:
@CssImport("./styles/page/login.css")
@PageTitle("Login")
@Component
@RouteAlias(value = "", layout = MainLayout.class, absolute = true)
@Route(value = "login", layout = MainLayout.class, absolute = true)
@UIScope
public class LoginView {
// ...
}
未找到页面:
@ParentLayout(MainLayout.class)
@PageTitle("Notfound")
public class CustomRouteNotFoundError extends RouteNotFoundError implements BeforeEnterObserver
我的路由定义是否有问题,或者安全配置从 Vaadin 20 到 21 有什么变化?
解决方案
Vaadin 21 默认阻止访问所有视图。您需要为每个视图添加注释,指定谁应该有权访问。@PermitAll
将允许所有登录用户访问该视图。请参阅https://vaadin.com/docs/v21/flow/integrations/spring/view-based-access-control/#annotating-the-view-classes
推荐阅读
- sql - 如何停止 CTE 中的递归?
- python - Pipenv:“已解决的依赖项中有不兼容的版本。” 尝试使用版本范围时
- apache - mod_perl2 因大量使用而随机失败,无法恢复
- ruby - Ruby 2.5 有默认的 GUI 库吗?
- javascript - 在角度 6 中具有条件形式模型的惯用方式
- python-3.x - GCP Stackdriver Monitoring 累积自定义指标开始和结束时间错误
- c# - 从 XML 为 C# 应用程序创建用户控件
- c++ - Different kind of objects in an array and getting the type of each
- postgresql - 如何生成每个 id 的字符串列表?
- r - R 使用带有嵌套 for 循环的 foreach