如何使用Java在vaadin中创建spring security登录页面?

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

我目前正在使用spring和vaadin构建一个Web应用程序。我搜索了几天找到一个解决方案来创建一个自定义登录页面,其中包含用于弹簧安全的vaadin。我有布局,但不知道如何将用户名和密码发送给春天....有人可以帮助我或给我一个很好的例子吗?

顺便说一句,我正在使用vaadin 10。

java spring security login vaadin
3个回答
0
投票

如果您已将Spring配置为使用formLogin(),则只需以正常形式提交数据即可。

<form method="POST" action="login">
    <input name="username" />
    <input name="password" />
    <input type="submit" value="Log in" />
</form>

如果你想在里面使用Vaadin组件,你需要将所有内容包装在iron-form

<iron-form id="ironForm" allow-redirect="true">
    <form method="POST" action="login">
        <vaadin-text-field name="username"></vaadin-text-field>
        <vaadin-password-field name="password"></vaadin-password-field>

        <vaadin-button theme="primary" on-click="_submit">
            Log in
        </vaadin-button>
    </form>
</iron-form>

并在单击Vaadin按钮时手动提交表单

_submit() {
    this.$.ironForm.submit();
}

0
投票

我通过使用Vaadin为登录页面创建了一个Route来管理它,并创建了一个自定义AuthenticationService,将Authentication Object放入SecurityContextHolder。


0
投票

Vaadin 13介绍了您可以使用的专用登录组件。他们将表单数据发送到Spring Security正在监听的配置端点:

@Tag("sa-login-view")
@Route(value = LoginView.ROUTE)
@PageTitle("Login")
public class LoginView extends VerticalLayout {
        public static final String ROUTE = "login";

        private LoginOverlay login = new LoginOverlay(); // (1)

        public LoginView(){
            login.setAction("login"); // (2)
            login.setOpened(true); // (3)
            login.setTitle("Spring Secured Vaadin");
            login.setDescription("Login Overlay Example");
            getElement().appendChild(login.getElement()); // (4)
        }
}

这段代码片段是关于Vaadin和Spring Security的教程的一部分。检查https://vaadin.com/tutorials/securing-your-app-with-spring-security。现在,有关页面重新加载免费解决方案的部分正在进行中。

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