TP #9 - Sécurité

Authentification

  • Créer une table USER :
CREATE TABLE USER (
    ID varchar(255) not null primary key,
    EMAIL varchar(255) NOT NULL,
       PASSWORD varchar(255) NOT NULL
);
  • Insérer un utilisateur en base de données.

  • Créer la classe modèle models.User correspondante à la table user.

  • Créer un service services.UserService :


public class UserService {

    private JPAApi jpaApi;
    private DatabaseExecutionContext exec;

    @Inject
    public UserService(JPAApi jpaApi, DatabaseExecutionContext exec) {
        this.jpaApi = jpaApi;
        this.exec = exec;
    }

    public CompletionStage<Optional<User>> authenticate(String email, String password) {
        return CompletableFuture.supplyAsync(() -> this.jpaApi.withTransaction(em -> {
            // TODO

        }));
    }
}
  • Créer une page d'authentification.

  • Créer une classe security.Secured :

public class Secured extends Security.Authenticator {

    @Override
    public String getUsername(Context ctx) {
        return ctx.session().get("email");
    }

    @Override
    public Result onUnauthorized(Context ctx) {
        return redirect(routes.LoginController.index());
    }

}
  • Sécuriser des actions et tester le résultat en utilisant l'annotation @Security.Authenticated(Secured.class) sur un contrôleur ou une action.

results matching ""

    No results matching ""