代码之家  ›  专栏  ›  技术社区  ›  Basil Bourque

使用Vaadin Flow webapp跨所有全局布局和“路由”url处理登录

  •  2
  • Basil Bourque  · 技术社区  · 7 年前

    瓦丁8

    在瓦丁8号,在我的 UI 子类通过检查用户会话是否带有一个属性来处理登录,该属性记录了用户是否成功登录。如果不是,我的朋友

    在瓦丁10号和更高版本, Vaadin Flow 这个 UI @Route 和 Router 类方法被建议作为在表单之间导航的方式,由附加到每个布局的不同url驱动。一个好处是用户可以在应用程序中以友好的web风格为一个位置添加书签。

    在瓦丁流中,如何处理 用户是否已登录的全局检查

    用户界面

    我是否应该遵循vaadin8方法,编写 ? 如果是这样,如何安装我的 用户界面 用户界面 显然是由瓦丁流自动放置的?

    我要学这个例子吗 shown in the manual 使用Servlet定义,如中所述 this other Question ?

    BeforeEnterEvent

    或者我应该和你做点什么 事件发生前 在中讨论 routing lifecycle tutorial ? 而在那一页的顶部有一个简短的提到听众在网上开火 用户界面 用户界面


    我的问题与存储密码、凭据、哈希和;salt等。我想知道一种方法,可以优雅地检查登录是否已完成,以阻止/授权访问Vaadin web应用程序的内容。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Basil Bourque    7 年前

    有几个不同的替代方案可能对您有用,这取决于您如何构建应用程序。

    1. BeforeEnterObserver . 这是一种非常简单的方法,只要整个应用程序只有一个主布局。一个缺点是没有任何支票 @Route 类,该类不配置为直接或间接使用主布局。
    2. RouterLayout.showRouterLayoutContent 在主布局中(而不是依赖于默认实现),并在那里执行检查。这同样只在主布局实际用于所有视图时有效,但如果中间有中间布局,则可能会很困难。
    3. 定义你自己的 AbstractView 类,该类对每个实例单独执行访问控制。这再次要求您记住始终使用 抽象视图 你所有的路线。
    4. 注册UI范围 BeforeEnterListener VaadinServiceInitListener UIInitListener 这会添加实际的侦听器(手册中描述了如何设置这些侦听器 here here
    推荐文章