Vaadin 10(-仅Java-)和Spring Security登录表单

时间:2018-10-24 07:41:55

标签: spring-security vaadin10 vaadin-flow

我正在尝试使用V10和Spring Sec。基于面包店演示。

但是Demo具有基于Polymer的登录按钮,并且在其html表单上具有操作方法。

我仅使用Java实现了登录。但是登录按钮不会触发任何操作。

FormLayout formLayout = new FormLayout();
    TextField txtUsername = new TextField();
    txtUsername.setPlaceholder("Kullanıcı Adı");

    PasswordField passwordField = new PasswordField();
    passwordField.setPlaceholder("Parola");

    Button btnLogin = new Button("Giriş");

    btnLogin.addClickListener(buttonClickEvent -> {
        System.out.println(txtUsername.getValue() + " " + passwordField.getValue());
    });

    formLayout.add(txtUsername, passwordField, btnLogin);
    add(formLayout);

Spring sec的任何工作示例。和纯Java。

2 个答案:

答案 0 :(得分:0)

仅通过发布的代码片段很难分辨出什么地方出了问题。对我来说似乎有效。由于Vaadin 13具有专用的登录组件,如果您要进行基于表单的登录,可以使用该组件简化任务。

@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();

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

login.setAction()方法定义最终表单数据发送到的端点。您将必须相应地配置Spring Security。

此代码段是我们的Spring Security教程的一部分:https://vaadin.com/tutorials/securing-your-app-with-spring-security/form-based

可能值得为您检查一下。

干杯,   保罗

答案 1 :(得分:0)

您的示例正常工作(从Vaadin 13开始),您确定查看的是System.out.println输出的正确位置吗? 替换为

Notification.show(txtUsername.getValue() + " " + passwordField.getValue());

直接在浏览器中查看。