【问题标题】:Access Controll in Vaadin 14 without Spring没有 Spring 的 Vaadin 14 中的访问控制
【发布时间】:2020-11-02 17:20:38
【问题描述】:

例子:

Route - Accessable by (Roles)
LoginView - Any
UserView - User, Admin
AdminView - Admin

在 Vaadin 14 中为这种情况构建访问控制的最佳实践是什么?最好在路由或配置访问控制的中心位置使用注释。

所有文档似乎都针对 spring。 他们提到 vaadin-cdi 应该提供帮助,但它没有,因此我认为这是来自 Vaadin 8 的工件。

提示可以使用 JAAS 或 Shiro,但似乎没有关于如何包含它们的示例或任何文档。

【问题讨论】:

    标签: vaadin cdi shiro jaas vaadin-flow


    【解决方案1】:

    Here is an article我写过这个主题。完整代码可以在GitHub找到。

    这不使用注释,但是,它只是检查用户是否为每个视图登录。

    要使用注解,首先创建一个注解或使用一个合适的注解。然后修改 ServiceInitListener 以便它除了检查用户是否通过身份验证之外,还检查它是否具有正确的角色。

    您可以使用beforeEnterEvent.getNavigationTarget() 获得正在导航到的视图,在那里您可以提取注释。您如何存储和检索当前用户的角色取决于您的设置。

    上述方法没有使用任何安全框架。

    【讨论】:

    • 如果文章挂了或者github repo消失了,这个答案本身就不是很有用。所以“要求”答案中的重要部分。你能改进吗?
    • 使用 BeforeEnterEvent 不就是一个安全漏洞吗?在触发此侦听器时,类已经构建,不是吗?要是能在之前拦截就好了。
    • bug github.com/vaadin/flow/issues/4595 在一些版本之前已修复,但在文章发布之后。如果您在附加时进行初始化,这不是安全问题,但我将更新项目以使用包含修复的 Vaadin 版本。
    猜你喜欢
    • 2021-05-27
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    相关资源
    最近更新 更多