Прежде всего, я полностью осведомлен о модулях аутентификации, доступных для воспроизведения. Тем не менее, я не могу реализовать даже самый простой пример кода, скажем, SecureSocial
. С небольшим количеством исследований выяснилось, что в их примере кода было разбито много вещей, приведенных в here, когда Play Framework обновлена до версии 2.3.x
.Реализация защищенной аутентификации подлинности Play Framework 2.3.x (Java style)
С помощью онлайн-документации и отличную video tutorial Филипа Джонсона по внедрению стандарта (небезопасные) аутентификация я успешно реализован следующим образом:
// Class which is used by the @Security annotation
public class Secured extends Security.Authenticator {
@Override
public String getUsername(Context ctx) {
return ctx.session().get("auth");
}
@Override
public Result onUnauthorized(Context ctx) {
return redirect(routes.Application.login());
}
}
// Controller class that serves routes
public class Application extends Controller {
@Security.Authenticated(Secured.class)
public static Result index() {
return ok(index.render("Your new application is ready."));
}
public static Result login() {
session().clear();
session("auth", "a1234"); // dummy data simulating succesful login
returning redirect(routes.Application.index());
}
}
Мне нужно в конечном счете реализовать безопасную систему входа для аутентификации пользователей ,
Мой вопрос двухсторонний. Что было бы лучше следующего: «изобретать колесо» (по крайней мере частично), взяв базу рабочего кода и улучшив его или давая возможность реализовать один из модулей аутентификации еще один снимок?
Мы все не нравится изобретать колесо, что сказал, у меня есть гораздо больше шансов успешно компиляции, когда я сделал это сам он, кажется ...
Я знаю, что для не- безопасности благотворный depty (aka layered security) также требуется реализация безопасного соединения (HTTPS
с TLS
1.2` на момент написания). Это выходит за рамки моего вопроса.