| | |
| | | private final Map<String, TeamModel> teams = new ConcurrentHashMap<String, TeamModel>();
|
| | |
|
| | | private volatile long lastModified;
|
| | | |
| | | private volatile boolean forceReload;
|
| | |
|
| | | public ConfigUserService(File realmFile) {
|
| | | this.realmFile = realmFile;
|
| | |
| | | }
|
| | |
|
| | | config.save();
|
| | | // manually set the forceReload flag because not all JVMs support real
|
| | | // millisecond resolution of lastModified. (issue-55)
|
| | | forceReload = true;
|
| | |
|
| | | // If the write is successful, delete the current file and rename
|
| | | // the temporary copy to the original filename.
|
| | |
| | | * Reads the realm file and rebuilds the in-memory lookup tables.
|
| | | */
|
| | | protected synchronized void read() {
|
| | | if (realmFile.exists() && (realmFile.lastModified() > lastModified)) {
|
| | | if (realmFile.exists() && (forceReload || (realmFile.lastModified() != lastModified))) {
|
| | | forceReload = false;
|
| | | lastModified = realmFile.lastModified();
|
| | | users.clear();
|
| | | cookies.clear();
|
| | |
| | | config.load();
|
| | | Set<String> usernames = config.getSubsections(USER);
|
| | | for (String username : usernames) {
|
| | | UserModel user = new UserModel(username);
|
| | | UserModel user = new UserModel(username.toLowerCase());
|
| | | user.password = config.getString(USER, username, PASSWORD);
|
| | |
|
| | | // user roles
|
| | |
| | | }
|
| | |
|
| | | // update cache
|
| | | users.put(username, user);
|
| | | cookies.put(StringUtils.getSHA1(username + user.password), user);
|
| | | users.put(user.username, user);
|
| | | cookies.put(StringUtils.getSHA1(user.username + user.password), user);
|
| | | }
|
| | |
|
| | | // load the teams
|