Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 使用Vaadin Flow webapp处理全球所有布局和跨;路线;网址 瓦丁8_Session_Login_Vaadin_Vaadin Flow - Fatal编程技术网

Session 使用Vaadin Flow webapp处理全球所有布局和跨;路线;网址 瓦丁8

Session 使用Vaadin Flow webapp处理全球所有布局和跨;路线;网址 瓦丁8,session,login,vaadin,vaadin-flow,Session,Login,Vaadin,Vaadin Flow,在vaadin8中,在我的UI子类中,我通过检查用户的会话是否带有一个属性来处理登录,该属性记录了用户是否成功登录。如果不是,myUI子类将显示一个登录布局,而不是带有导航选项的其他内容,如菜单栏和切换该UI内布局的按钮 瓦丁10+ 在Vaadin 10及更高版本中,该类显然是由Vaadin以一种对应用程序开发人员透明的方式自动处理的。现在建议使用@Route和Router类方法作为表单之间导航的方式,由附加到每个布局的不同URL驱动。一个好处是用户能够以友好的网络风格在应用程序中为某个位置添加

在vaadin8中,在我的
UI
子类中,我通过检查用户的会话是否带有一个属性来处理登录,该属性记录了用户是否成功登录。如果不是,my
UI
子类将显示一个登录布局,而不是带有导航选项的其他内容,如菜单栏和切换该UI内布局的按钮

瓦丁10+ 在Vaadin 10及更高版本中,该类显然是由Vaadin以一种对应用程序开发人员透明的方式自动处理的。现在建议使用
@Route
Router
类方法作为表单之间导航的方式,由附加到每个布局的不同URL驱动。一个好处是用户能够以友好的网络风格在应用程序中为某个位置添加书签

全局检查 ➥ 在Vaadin Flow中,在显示任何其他内容之前,如何处理用户登录的全局检查

子类
UI
,如Vaadin 8 我是否应该遵循vaadin8方法,编写
UI
的子类?如果是这样,如何安装我的
UI
子类来代替显然由Vaadin流自动放置的
UI

我是否遵循示例中的Servlet定义,如中所述

beforeinterevent
或者我应该使用中讨论的
beforeinterevent
?虽然页面顶部简要提到了侦听器在
UI
实例上启动,但页面其余部分的示例涉及布局上的代码,而不是
UI
。因此,我不知道如何在我的应用程序中定义的所有当前和未来布局中处理全局检查



我的问题与存储密码、凭据、哈希和salt等无关。我想问的是如何优雅地检查登录是否已完成,以阻止/授予对Vaadin web app内容的访问权。

有两种不同的选择可能对您有用,这取决于您构建应用程序的方式

  • 使您的主布局类在Enterobserver之前实现
    。这是一种非常简单的方法,只要整个应用程序只有一个主布局。一个缺点是不会检查任何未配置为直接或间接使用主布局的
    @Route
  • 在主布局中实现
    RouterLayout.showRouterLayoutContent
    (而不是依赖默认实现),并在那里进行检查。这同样只在主布局实际用于所有视图时有效,但如果中间有中间布局,则可能会遇到挑战
  • 定义自己的
    AbstractView
    类,该类对每个实例单独进行访问控制。这再次要求您记住对所有路线始终使用
    AbstractView
  • 在执行访问检查的EnterListener之前注册UI范围的
    。由于需要一个
    VaadinServiceInitListener
    来添加一个
    UIInitListener
    来添加实际的侦听器,因此设置起来有点复杂。(手册和中介绍了如何设置这些侦听器。)另一方面,这种方法能够拦截任何导航事件,而不考虑布局嵌套,并且不需要特殊的视图类

  • 我找不到
    AbstractView
    接口或抽象类(从上面的第3页),我的目的是让您专门为您的应用程序创建自己的
    AbstractView
    类。我对我的答案做了一个小的编辑,希望能让它更清楚一点。如何实现第四个备选方案:演示项目:@enkara做任何事
    UI
    -基于Vaadin 14中的不切实际,因为
    UI
    实例被迅速替换,有时在几秒钟内,一个接一个,没有尽头。我不知道比版本10到13更多或更少的频率。我所知道的是,在几个小时的试验中,
    @PWA
    打开或关闭,
    @preserveonfresh
    打开或关闭,Jetty 9或10,以及Vaadin 14.0.1/2/3/4/5与14.1.0.alpha1/2,我一直无法找到任何UI对象稳定的配置(意味着每个会话一个实例)。