[play 2] problème lors de l'authentification
Bonjour,
je joue avec ce framework sympatique depuis quelques semaines et j'ai un petit problème à mettre en place la sécurité.
D'après ce que j'ai trouvé, l'authentification ne passe pas car les propriétés login et password ne sont pas remplies.
Est-ce que qq1 saurait comment résoudre mon pb?
Je me suis inspiré de l'exemple zentask que j'ai mis à ma sauce:
Code:
1 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| package controllers;
import exceptions.UserNotFindException;
import exceptions.WrongPasswordConnectionException;
import models.User;
import play.*;
import play.mvc.*;
import play.data.*;
import models.*;
import views.html.*;
public class Authentication extends Controller {
public static class AuthenticatedUser{
public String login;
public String password;
public String validate() {
System.out.println("login:("+this.login+")");
System.out.println("login:("+this.password+")");
//le problème se situe ici car ces traces me renvoient null pour login et password
String result=null;
try {
if (User.authenticate(login, password) != null) result=null;
} catch (WrongPasswordConnectionException e) {
result=" mauvais password";
} catch (UserNotFindException e){
result="User non trouvé";
}
return result;
}
}
public static Result login() {
return ok(
login.render(Form.form(AuthenticatedUser.class))
);
}
public static Result authenticate() {
Form<AuthenticatedUser> loginForm =
Form.form(AuthenticatedUser.class).bindFromRequest();
System.out.println(loginForm.toString());
if(loginForm.hasErrors()) {
return badRequest(login.render(loginForm));
} else {
session("login", loginForm.get().login);
return redirect(
routes.Application.index()
);
}
}
//Fermer la session
public static Result logout() {
session().clear();
flash("success", "Vous êtes déconnecté(e)");
return redirect(
routes.Authentication.login()
);
}
} |
login.scala.html
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @(form: Form[Authentication.AuthenticatedUser])
@main("Authentification", null) {
@helper.form(routes.Authentication.authenticate) {
<h2>Qui êtes vous ?</h2>
@if(form.hasGlobalErrors) {
<p class="error">@form.globalError.message</p>
}
@if(flash.contains("success")) {
<p class="success">@flash.get("success")</p>
}
<p><input name="login" placeholder="login"
value="@form("login").value"></p>
<p><input type="password" name="password" placeholder="Password"></p>
<p><button class="btn" type="submit">Login</button></p>
}
} |