2015-01-10 1 views
1

Прежде всего, я полностью осведомлен о модулях аутентификации, доступных для воспроизведения. Тем не менее, я не могу реализовать даже самый простой пример кода, скажем, 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` на момент написания). Это выходит за рамки моего вопроса.

ответ

1

Я не знаю, есть ли правильный ответ на этот вопрос. Независимо от того, создавать ли свою собственную структуру или попробовать существующую структуру (которая может не работать отлично), это вопрос для вашего собственного решения. Лично я, вероятно, использовал бы SecureSocial в качестве отправной точки, но потом написал свой собственный код, если бы не смог заставить его работать. Похоже, это тот подход, который вы уже пробовали.

Чтобы использовать SecureSocial, вам, вероятно, потребуется проверить основную ветку и построить из источника. Это может быть сложно использовать, если примеры устарели, но опять же писать собственный код auth тоже сложно.

 Смежные вопросы

  • Нет связанных вопросов^_^