Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/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
如何仅使用Java在vaadin中创建spring安全登录页?_Java_Spring_Security_Login_Vaadin - Fatal编程技术网

如何仅使用Java在vaadin中创建spring安全登录页?

如何仅使用Java在vaadin中创建spring安全登录页?,java,spring,security,login,vaadin,Java,Spring,Security,Login,Vaadin,我目前正在用spring和vaadin构建一个web应用程序。我搜索了几天,想找到一个解决方案,用vaadin为spring security创建一个自定义登录页面。我有布局,但不知道如何将用户名和密码发送到spring。。。。 有谁能帮我或给我举个好例子吗 顺便说一句,我使用的是vaadin 10。如果您已将Spring配置为使用formLogin(),则只需以正常形式提交数据即可 <form method="POST" action="login"> <input

我目前正在用spring和vaadin构建一个web应用程序。我搜索了几天,想找到一个解决方案,用vaadin为spring security创建一个自定义登录页面。我有布局,但不知道如何将用户名和密码发送到spring。。。。 有谁能帮我或给我举个好例子吗


顺便说一句,我使用的是vaadin 10。

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

<form method="POST" action="login">
    <input name="username" />
    <input name="password" />
    <input type="submit" value="Log in" />
</form>
并在单击Vaadin按钮时手动提交表单

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

我使用Vaadin为登录页面创建了一个路由,并创建了一个自定义AuthenticationService,将身份验证对象放入SecurityContextHolder中。

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

@Tag(“sa登录视图”)
@路由(值=LoginView.Route)
@页面标题(“登录”)
公共类LoginView扩展了垂直布局{
公共静态最终字符串ROUTE=“login”;
private LoginOverlay login=new LoginOverlay();/(1)
公共登录视图(){
login.setAction(“login”);/(2)
login.setOpened(true);/(3)
login.setTitle(“Spring-Secured-Vaadin”);
setDescription(“登录覆盖示例”);
getElement().appendChild(login.getElement());/(4)
}
}

这段代码是关于Vaadin和Spring安全性的教程的一部分。检查。目前正在进行一个关于无页面重新加载解决方案的部分。

这应该可以通过
AuthenticationProvider\authenticate
调用实现。我不确定,但是SpringBoot应该已经自动配置了一个。对于普通的spring应用程序,我认为您需要手动配置它。
_submit() {
    this.$.ironForm.submit();
}