仅针对对话框组件强制登录

问题描述 投票:0回答:1

我根据 vaadin 文档中的描述配置并测试了视图的一般安全功能:https://vaadin.com/docs/latest/security/enabling-security

我用

<dependency>            <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-security</artifactId>       </dependency>

并将

@PermitAll
添加到我的视图之一,用户被迫登录。

我要求的是以下场景:

我希望无需登录即可查看(安全),因此我添加了

@AnonymousAllowed
。效果很好,无需登录。在此视图中,我打开一个对话框(dialog.open())。我希望这个对话框是安全的,这样如果用户想要查看对话框的内容,就必须登录。尝试将
@PermitAll
添加到对话框中,但没有改变任何内容。我假设该对话框是在我添加
@AnonymousAllowed
的视图上下文中打开的,因为它不是一个单独的视图,只是一个对话框。他们有什么办法强制对话框要求登录吗?也许,在打开对话框之前从任何 vaadin / spring 安全类调用“doLoginNow”方法?

在 Vaadin 论坛中询问,根据文档尝试了不同的方法,例如

@PermitAll
或使用
AuthenticationContext
,但这不起作用,或者只是提供有关上下文信息的方法。

spring-security vaadin spring-boot-security
1个回答
0
投票

检查用户是否通过 AuthenticationContext 进行身份验证。如果没有,请使用 UI.getCurrent().getPage().setLocation("securedPage"); 重定向到 @PermittAll 视图

© www.soinside.com 2019 - 2024. All rights reserved.