如何预处理Restlet中的http调用并根据该http调用设置新的URL?

时间:2012-11-21 09:58:24

标签: java restlet

我的问题是我在启动服务器时创建了所有用户网址。对于很多用户来说,这需要时间,我希望最小化我的启动时间,以便能够更快地部署。

我的网址是;

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下都有自己的登录名和自己的文件区(郊区取决于用户的文件结构)。

不是在启动servlet时创建所有用户,我可以通过Restlet框架以某种方式挂钩到登录/第一次访问(如上所述的相同URL)并附加用户目录吗? < / p>

1 个答案:

答案 0 :(得分:0)

事实证明,当用户登录时,调用我的 addClientDirectories()并不困难。