本文介绍了Vaadin(Flow)21从20升级-所有路线突然返回404的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近尝试从Vaadin 20升级到Vaadin 21。我关注了升级guide,一切似乎都开始得很好,没有任何错误消息。但是,当我尝试导航到任何路线时,只加载了我的MainLayout,并且里面的所有内容都加载了Not Found页面(对于每条路线),日志中没有错误消息。在我看来,无论是公开访问还是登录,这些路线都没有正确填充。

堆栈:

  • 瓦丁21.0.2
  • Spring Boot 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

这篇关于Vaadin(Flow)21从20升级-所有路线突然返回404的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 05:32