[英]Implementing secure native Play Framework 2.3.x (Java style) authentication
首先,我完全了解Play可用的身份驗證模塊。 就是說,我什至無法實現來自SecureSocial
的最簡單的示例代碼。 通過一點點研究,可以清楚地看到,當Play框架更新到2.3.x
版時, 此處提供的示例代碼中有很多東西已損壞。
借助於在線文檔和Philip Johnson出色的視頻教程的幫助,我成功地實現了以下方面:
// 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());
}
}
我最終需要實現一個安全的登錄系統來對用戶進行身份驗證。
我的問題是兩方面的。 以下是什么更好的選擇:(至少部分)通過采用工作代碼庫並對其進行改進來“重新發明輪子”(或者至少部分地),或者為實現其中一個身份驗證模塊提供更多幫助?
我們大家都不喜歡重新發明輪子,也就是說,當我自己制作它的時候,我更有機會成功進行編譯...
我知道,要獲得有益的部門安全(又稱分層安全),還需要一個安全的連接實現(在撰寫本文時, HTTPS
帶有TLS
1.2`)。 這超出了我的問題范圍。
我不知道這個問題是否有正確的答案。 是構建自己的框架還是嘗試現有的框架(可能無法完美運行),這取決於您自己的判斷。 就個人而言,我可能會以SecureSocial為起點,但是如果無法正常工作,請編寫自己的代碼。 聽起來這是您已經嘗試過的方法。
要使用SecureSocial,您可能需要檢出master分支並從源代碼構建。 如果示例已過時,可能很難使用,但是再次編寫自己的身份驗證代碼也很困難。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.