2

私はspark-Javaフレームワークを初めて使用し、ユーザーが認証されているかどうかを確認するための良い解決策があるかどうか疑問に思っていました. ユーザーが認証されていない場合は、「/login」にリダイレクトしたいと考えています。私の意見では、これに対する最善の解決策は before フィルターにあります。しかし、リダイレクト ループが発生します。

public static void main(String[] args) {
    before((req, res) -> {
        User usr = new User("DUMMY");
        if (!Authentication.isUserAuthenticated(usr)) {
            res.redirect("/login");
        }
    });
    get("/login", (req, res) -> {
        return "Sir, your credentials please!";
    });
    get("/", (req, res) -> {
        return "Welcome!";
    });
}

特定のパスを除外する方法はありますか? または、より良い解決策のためのアドバイスはありますか?

よろしく、フィリップ

4

1 に答える 1

4

より良いアプローチは、リダイレクトする代わりに http が承認されていない状態で停止することだと思います。before フィルターのリダイレクトを に置き換えることで、そうすることができますhalt(401)。次に、クライアント コードでこのステータス コードを処理する必要があります。クライアント コードに AngularJs などのフレームワークを使用していますか?

于 2016-01-28T10:36:14.330 に答える