我正在尝试使用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。
答案 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());
直接在浏览器中查看。