我目前正在使用spring和vaadin构建一个Web应用程序。我花了几天时间寻找解决方案,以使用vaadin创建自定义登录页面以确保春季安全。我已经有了布局,但不知道如何将用户名和密码发送给spring。 有人可以帮我还是给我一个好榜样?
通过我使用vaadin 10的方式。
答案 0 :(得分: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();
}
答案 1 :(得分:0)
我通过使用Vaadin为登录页面创建路由来管理它,并创建了一个自定义AuthenticationService,该服务将Authentication Object放入SecurityContextHolder。
答案 2 :(得分: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。目前,有关无页面重装解决方案的部分正在进行中。