2

我正在尝试使用 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。

4

2 回答 2

2

仅通过您发布的代码片段很难判断出什么问题。对我来说它看起来有效。由于 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-b​​ased

可能值得为您检查。

干杯,保罗

于 2019-03-29T21:28:26.163 回答
0

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

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

直接在浏览器中查看。

于 2019-08-07T11:44:40.443 回答