0

私の問題は、サーバーを起動するときにすべてのユーザーの URL を作成することです。ユーザーが多いと時間がかかるため、起動時間を最小限に抑えて展開を高速化したいと考えています。

私のURLは;

http://server.com/user_id/user_files_goes_here

コード;

public synchronized Restlet createInboundRoot() {
    // for every client do;
    addClientDirectories(client);
}

private void addClientDirectories(Client aUser) {
    Router guardedRouter = new Router(context);

    // Attach a guard to secure access to the directory
    SaltedClientGuard guard = new SaltedClientGuard(context, ChallengeScheme.HTTP_BASIC, "user: " + aUser.userID);
    guard.setRechallengeEnabled(false);
    guard.getSecrets().put(aUser.userID, aUser.mPassword.toCharArray());
    guard.setNext(guardedRouter);

    // Create a directory able to expose a hierarchy of files
    Directory directory = new Directory(context, rooturi+ aUser.userID + "/");
    directory.setListingAllowed(true);
    directory.setDeeplyAccessible(true);
    directory.setModifiable(true);
    directory.setTargetClass(UserDirectory.class);

    guardedRouter.attach(rooturl, directory);

    rootRouter.attach(userurl + "/" + aUser.userID+"/", guard);
}

上記では、ユーザーが基本認証でログインする必要があることを確認し、次に UserDirectory.class がどのデータを上下に転送する必要があるかを処理します。各ユーザーには、独自のログインと、独自の URL の下に独自のファイル領域があります (サブ URL は、ユーザーのファイル構造に応じて異なります)。

サーブレットの起動時にすべてのユーザーを作成する代わりに、Restlet フレームワークを使用してログイン/最初のアクセス (上記と同じ URL へ) にフックし、ユーザー ディレクトリをアタッチできますか?

4

1 に答える 1

0

したがって、ユーザーがログインしたときにaddClientDirectories()を呼び出すのは難しくありません。

于 2012-12-14T15:11:14.030 に答える