0

私は、基本的にアプリケーションのさまざまなページを表すさまざまな複合ウィジェットであるさまざまな「画面」をロードするシングルトン クラスのパターンで設計された GWT アプリケーションを持っています。

public enum ContentContainer {

    INSTANCE;

    public void setContent(Composite content) {
        RootPanel.get("content").clear();
        RootPanel.get("content").add(content);
    }
}

認証には Apache Shiro を使用しています。

いくつかの「画面」でユーザーの認証を要求するには、どの設計パターンを使用すればよいですか? 私は現在setAuthenticatedContent()、ユーザーがログインしているかどうかを確認するためのチェックを実行する、シングルトンに 2 番目のメソッドを用意することを考えています。認証が必要な画面に入るとsetAuthenticatedContent()代わりに通りsetContent()ます。

まだ考えていないより良い方法はありますか?

4

2 に答える 2

0

Dependency Injection(Gin) を使用CurrentUser.classして、情報にアクセスする必要があるすべてのコンポーネントにシングルトン オブジェクト (つまり ) を挿入します。
ユーザーがログインしているかどうか、およびおそらくユーザーの役割 ( ADMIN CurrentUser.cass、USER など) に関する情報が含まれています。

データを入力するCurrentUser.classには、バックエンドにリクエストを送信するか (またはを使用) RPC動的ホスト ページアプローチを使用して、バックエンドがユーザー情報を HTML ホスト ページにレンダリングできるようにすることをお勧めします。 このメソッドでは、またはを使用して、HTML ホスト ページから情報を取得できます。RequestFactoryRequestBuilder
onModuleLoadDictonaryJSNI

重要: このアプローチは、UI コントロールの表示と非表示のみを目的としています。ユーザーが実際にUIアクションを実行するときは、ユーザーがアクションを実行する権限を持っているかどうかを常にバックエンドで確認する必要があります。悪意のあるユーザーはCurrentUser.class、クライアント上のインスタンスを変更できます。

于 2013-07-29T08:18:16.050 に答える