package com.tddinaction.wicket.spring;
import org.apache.wicket.injection.web.InjectorHolder;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.spring.injection.annot.SpringBean;
import com.tddinaction.wicket.auth.Authenticator;
public class LoginForm extends Form {
@SpringBean(name = "authenticator")
private Authenticator auth;
public void setSetterAuthenticator(Authenticator authenticator) {
System.out.println("setter injection happened with an "
+ authenticator.getClass().getName());
}
public LoginForm(String name) {
super(name, new CompoundPropertyModel(new LoginInfo()));
InjectorHolder.getInjector().inject(this);
add(new TextField("j_username"));
add(new PasswordTextField("j_password"));
System.out.println("LoginForm was created with authenticator " + auth);
}
@Override
protected void onSubmit() {
LoginInfo login = (LoginInfo) getModelObject();
String username = login.getJ_username();
String password = login.getJ_password();
if (auth.authenticate(username, password)) {
getPage().setResponsePage(MyHomePage.class);
}
}
}