我的问题是我在启动服务器时创建了所有用户的 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 下都有自己的登录名和自己的文件区域(子网址取决于用户文件结构)。
与其在启动 servlet 时创建所有用户,我可以以某种方式使用 Restlet 框架连接到登录/首次访问(与上述相同的 url)并附加用户目录吗?