1 package fr.ifremer.quadrige3.synchro.server.pages.login;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 import fr.ifremer.quadrige3.synchro.server.application.WebSession;
29 import fr.ifremer.quadrige3.synchro.server.pages.BasePage;
30 import fr.ifremer.quadrige3.synchro.server.pages.home.HomePage;
31 import fr.ifremer.quadrige3.synchro.server.security.SecurityContextHelper;
32 import org.apache.commons.logging.Log;
33 import org.apache.commons.logging.LogFactory;
34 import org.apache.wicket.ajax.AjaxRequestTarget;
35 import org.apache.wicket.extensions.ajax.markup.html.IndicatingAjaxButton;
36 import org.apache.wicket.markup.html.basic.Label;
37 import org.apache.wicket.markup.html.form.Form;
38 import org.apache.wicket.markup.html.form.PasswordTextField;
39 import org.apache.wicket.markup.html.form.RequiredTextField;
40 import org.apache.wicket.model.CompoundPropertyModel;
41 import org.apache.wicket.model.IModel;
42 import org.apache.wicket.model.StringResourceModel;
43 import org.apache.wicket.request.mapper.parameter.PageParameters;
44
45
46
47
48
49 public class LoginPage extends BasePage {
50
51 private final static Log log = LogFactory.getLog(LoginPage.class);
52 private static final long serialVersionUID = 1L;
53
54 private String username;
55 private String password;
56 private String error;
57 private Label errorLabel;
58
59
60
61
62
63
64 public LoginPage(final PageParameters parameters) {
65 super(parameters);
66
67 if (SecurityContextHelper.isAuthenticateNotAnonymous()) {
68 setResponsePage(HomePage.class);
69 return;
70 }
71
72 final Form<LoginPage> form = new Form<>("form", new CompoundPropertyModel<>(this));
73 add(form);
74
75
76 RequiredTextField<String> usernameText = new RequiredTextField<>("username");
77
78 form.add(usernameText);
79
80
81 form.add(new PasswordTextField("password"));
82
83
84 IndicatingAjaxButton submitButton = new IndicatingAjaxButton("submit") {
85 private static final long serialVersionUID = 6186054816945761563L;
86
87 @Override
88 protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
89 try {
90 form.process(null);
91 if (WebSession.get().signIn(username, password)) {
92 continueToOriginalDestination();
93 setResponsePage(HomePage.class);
94 } else {
95 error = getString("login.failed");
96 log.error(error);
97 }
98 } catch (Exception ex) {
99 error = getString("login.failed") + " : " + ex.getLocalizedMessage();
100 log.error(error);
101 target.add(errorLabel);
102 }
103 }
104 };
105 form.setDefaultButton(submitButton);
106 form.add(submitButton);
107
108
109 errorLabel = new Label("error");
110 errorLabel.setOutputMarkupId(true);
111 form.add(errorLabel);
112 }
113
114
115 @Override
116 protected IModel<String> getTitleModel() {
117 return new StringResourceModel("login.title", this, null);
118 }
119
120 }