簡體   English   中英

實施安全的本地Play Framework 2.3.x(Java樣式)身份驗證

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM