Search in sources :

Example 11 with UserAider

use of org.exist.security.internal.aider.UserAider in project exist by eXist-db.

the class AddUserTask method execute.

/* (non-Javadoc)
     * @see org.apache.tools.ant.Task#execute()
     */
public void execute() throws BuildException {
    super.execute();
    if (name == null) {
        throw (new BuildException("Must specify at leat a user name"));
    }
    try {
        final UserAider usr = new UserAider(name);
        if (secret != null) {
            usr.setPassword(secret);
        }
        if (primaryGroup != null) {
            usr.addGroup(primaryGroup);
        }
        log("Adding user " + name, Project.MSG_INFO);
        service.addAccount(usr);
    } catch (final XMLDBException e) {
        final String msg = "XMLDB exception caught: " + e.getMessage();
        if (failonerror) {
            throw (new BuildException(msg, e));
        } else {
            log(msg, e, Project.MSG_ERR);
        }
    }
}
Also used : XMLDBException(org.xmldb.api.base.XMLDBException) BuildException(org.apache.tools.ant.BuildException) UserAider(org.exist.security.internal.aider.UserAider)

Example 12 with UserAider

use of org.exist.security.internal.aider.UserAider in project exist by eXist-db.

the class RpcConnection method addAccount.

@Override
public boolean addAccount(final String name, String passwd, final String passwdDigest, final List<String> groups, final Boolean enabled, final Integer umask, final Map<String, String> metadata) throws EXistException, PermissionDeniedException {
    if (passwd.length() == 0) {
        passwd = null;
    }
    final SecurityManager manager = factory.getBrokerPool().getSecurityManager();
    if (manager.hasAccount(name)) {
        throw new PermissionDeniedException("Account '" + name + "' exist");
    }
    if (!manager.hasAdminPrivileges(user)) {
        throw new PermissionDeniedException("Account '" + user.getName() + "' not allowed to create new account");
    }
    final UserAider u = new UserAider(name);
    u.setEncodedPassword(passwd);
    u.setPasswordDigest(passwdDigest);
    for (final String g : groups) {
        if (!u.hasGroup(g)) {
            u.addGroup(g);
        }
    }
    if (enabled != null) {
        u.setEnabled(enabled);
    }
    if (umask != null) {
        u.setUserMask(umask);
    }
    if (metadata != null) {
        for (final Map.Entry<String, String> m : metadata.entrySet()) {
            if (AXSchemaType.valueOfNamespace(m.getKey()) != null) {
                u.setMetadataValue(AXSchemaType.valueOfNamespace(m.getKey()), m.getValue());
            } else if (EXistSchemaType.valueOfNamespace(m.getKey()) != null) {
                u.setMetadataValue(EXistSchemaType.valueOfNamespace(m.getKey()), m.getValue());
            }
        }
    }
    withDb((broker, transaction) -> manager.addAccount(u));
    return true;
}
Also used : SecurityManager(org.exist.security.SecurityManager) PermissionDeniedException(org.exist.security.PermissionDeniedException) UserAider(org.exist.security.internal.aider.UserAider) LockedDocumentMap(org.exist.storage.lock.LockedDocumentMap)

Example 13 with UserAider

use of org.exist.security.internal.aider.UserAider in project exist by eXist-db.

the class RpcConnection method updateGroup.

@Override
public boolean updateGroup(final String name, final List<String> managers, final Map<String, String> metadata) throws EXistException, PermissionDeniedException {
    final SecurityManager manager = factory.getBrokerPool().getSecurityManager();
    if (manager.hasGroup(name)) {
        final GroupAider group = new GroupAider(name);
        for (final String groupManager : managers) {
            group.addManager(new UserAider(groupManager));
        }
        if (metadata != null) {
            for (final Map.Entry<String, String> m : metadata.entrySet()) {
                if (AXSchemaType.valueOfNamespace(m.getKey()) != null) {
                    group.setMetadataValue(AXSchemaType.valueOfNamespace(m.getKey()), m.getValue());
                } else if (EXistSchemaType.valueOfNamespace(m.getKey()) != null) {
                    group.setMetadataValue(EXistSchemaType.valueOfNamespace(m.getKey()), m.getValue());
                }
            }
        }
        withDb((broker, transaction) -> manager.updateGroup(group));
        return true;
    } else {
        return false;
    }
}
Also used : SecurityManager(org.exist.security.SecurityManager) GroupAider(org.exist.security.internal.aider.GroupAider) UserAider(org.exist.security.internal.aider.UserAider) LockedDocumentMap(org.exist.storage.lock.LockedDocumentMap)

Example 14 with UserAider

use of org.exist.security.internal.aider.UserAider in project exist by eXist-db.

the class XMLDBAuthenticateTest method beforeClass.

@Before
public void beforeClass() throws XMLDBException {
    final Collection root = DatabaseManager.getCollection("xmldb:exist://localhost:" + existWebServer.getPort() + "/xmlrpc/db", TestUtils.ADMIN_DB_USER, TestUtils.ADMIN_DB_PWD);
    final UserManagementService ums = (UserManagementService) root.getService("UserManagementService", "1.0");
    final GroupAider group1 = new GroupAider(USER1_UID);
    ums.addGroup(group1);
    final UserAider user1 = new UserAider(USER1_UID, group1);
    user1.setPassword(USER1_PWD);
    ums.addAccount(user1);
}
Also used : Collection(org.xmldb.api.base.Collection) UserManagementService(org.exist.xmldb.UserManagementService) GroupAider(org.exist.security.internal.aider.GroupAider) UserAider(org.exist.security.internal.aider.UserAider) Before(org.junit.Before)

Example 15 with UserAider

use of org.exist.security.internal.aider.UserAider in project exist by eXist-db.

the class InteractiveClient method process.

/**
 * In interactive mode, process a line entered by the user.
 *
 * @param line the line entered
 * @return true if command != quit
 */
protected boolean process(final String line) {
    if (options.startGUI) {
        frame.setPath(path);
    }
    final String[] args;
    if (line.startsWith("find")) {
        args = new String[2];
        args[0] = "find";
        args[1] = line.substring(5);
    } else {
        final StreamTokenizer tok = new StreamTokenizer(new StringReader(line));
        tok.resetSyntax();
        tok.wordChars(0x21, 0x7FFF);
        tok.quoteChar('"');
        tok.whitespaceChars(0x20, 0x20);
        final List<String> argList = new ArrayList<>(3);
        // int i = 0;
        int token;
        try {
            while ((token = tok.nextToken()) != StreamTokenizer.TT_EOF) {
                if (token == StreamTokenizer.TT_WORD || token == '"') {
                    argList.add(tok.sval);
                }
            }
        } catch (final IOException e) {
            System.err.println("Could not parse command line.");
            return true;
        }
        args = new String[argList.size()];
        argList.toArray(args);
    }
    if (args.length == 0) {
        return true;
    }
    try {
        XmldbURI newPath = path;
        final XmldbURI currUri = XmldbURI.xmldbUriFor(properties.getProperty(URI)).resolveCollectionPath(path);
        if (args[0].equalsIgnoreCase("ls")) {
            // list collection contents
            getResources();
            if ("true".equals(properties.getProperty(PERMISSIONS))) {
                for (String resource : resources) {
                    messageln(resource);
                }
            } else {
                for (int i = 0; i < resources.length; i++) {
                    final StringBuilder buf = new StringBuilder();
                    int k = 0;
                    for (int j = 0; i < resources.length && j < 5; i++, j++) {
                        buf.append(resources[i]);
                        buf.append('\t');
                        k = j;
                    }
                    if (k == 4 && i < resources.length) {
                        i--;
                    }
                    messageln(buf.toString());
                }
            }
        } else if (args[0].equalsIgnoreCase("cd")) {
            // change current collection
            completitions.clear();
            Collection temp;
            XmldbURI collectionPath;
            if (args.length < 2 || args[1] == null) {
                collectionPath = XmldbURI.ROOT_COLLECTION_URI;
            } else {
                collectionPath = XmldbURI.xmldbUriFor(args[1]);
            }
            collectionPath = currUri.resolveCollectionPath(collectionPath);
            if (collectionPath.numSegments() == 0) {
                collectionPath = currUri.resolveCollectionPath(XmldbURI.ROOT_COLLECTION_URI);
                messageln("cannot go above " + XmldbURI.ROOT_COLLECTION_URI.toString());
            }
            temp = DatabaseManager.getCollection(collectionPath.toString(), properties.getProperty(USER), properties.getProperty(PASSWORD));
            if (temp != null) {
                current.close();
                current = temp;
                newPath = collectionPath.toCollectionPathURI();
                if (options.startGUI) {
                    frame.setPath(collectionPath.toCollectionPathURI());
                }
            } else {
                messageln("no such collection.");
            }
            getResources();
        } else if (args[0].equalsIgnoreCase("cp")) {
            if (args.length != 3) {
                messageln("cp requires two arguments.");
                return true;
            }
            final XmldbURI src;
            final XmldbURI dest;
            try {
                src = XmldbURI.xmldbUriFor(args[1]);
                dest = XmldbURI.xmldbUriFor(args[2]);
            } catch (final URISyntaxException e) {
                errorln("could not parse collection name into a valid URI: " + e.getMessage());
                return false;
            }
            copy(src, dest);
            getResources();
        } else if (args[0].equalsIgnoreCase("edit")) {
            if (args.length == 2) {
                final XmldbURI resource;
                try {
                    resource = XmldbURI.xmldbUriFor(args[1]);
                } catch (final URISyntaxException e) {
                    errorln("could not parse resource name into a valid URI: " + e.getMessage());
                    return false;
                }
                editResource(resource);
            } else {
                messageln("Please specify a resource.");
            }
        } else if (args[0].equalsIgnoreCase("get")) {
            if (args.length < 2) {
                System.err.println("wrong number of arguments.");
                return true;
            }
            final XmldbURI resource;
            try {
                resource = XmldbURI.xmldbUriFor(args[1]);
            } catch (final URISyntaxException e) {
                errorln("could not parse resource name into a valid URI: " + e.getMessage());
                return false;
            }
            final Resource res = retrieve(resource);
            // display document
            if (res != null) {
                final String data;
                if ("XMLResource".equals(res.getResourceType())) {
                    data = (String) res.getContent();
                } else {
                    data = new String((byte[]) res.getContent());
                }
                if (options.startGUI) {
                    frame.setEditable(false);
                    frame.display(data);
                    frame.setEditable(true);
                } else {
                    final String content = data;
                    more(content);
                }
            }
            return true;
        } else if (args[0].equalsIgnoreCase("find")) {
            // search
            if (args.length < 2) {
                messageln("no query argument found.");
                return true;
            }
            messageln(args[1]);
            final long start = System.currentTimeMillis();
            result = find(args[1]);
            if (result == null) {
                messageln("nothing found");
            } else {
                messageln("found " + result.getSize() + " hits in " + (System.currentTimeMillis() - start) + "ms.");
            }
            nextInSet = 1;
        } else if (args[0].equalsIgnoreCase("run")) {
            if (args.length < 2) {
                messageln("please specify a query file.");
                return true;
            }
            try (final BufferedReader reader = Files.newBufferedReader(Paths.get(args[1]))) {
                final StringBuilder buf = new StringBuilder();
                String nextLine;
                while ((nextLine = reader.readLine()) != null) {
                    buf.append(nextLine);
                    buf.append(EOL);
                }
                args[1] = buf.toString();
                final long start = System.currentTimeMillis();
                result = find(args[1]);
                if (result == null) {
                    messageln("nothing found");
                } else {
                    messageln("found " + result.getSize() + " hits in " + (System.currentTimeMillis() - start) + "ms.");
                }
                nextInSet = 1;
            } catch (final Exception e) {
                errorln("An error occurred: " + e.getMessage());
            }
        } else if (args[0].equalsIgnoreCase("show")) {
            // show search results
            if (result == null) {
                messageln("no result set.");
                return true;
            }
            try {
                int start = nextInSet;
                int count = 1;
                if (args.length > 1) {
                    start = Integer.parseInt(args[1]);
                }
                if (args.length > 2) {
                    count = Integer.parseInt(args[2]);
                }
                final int s = (int) result.getSize();
                if (start < 1 || start > s) {
                    messageln("start offset out of range");
                    return true;
                }
                --start;
                if (start + count > s) {
                    count = s - start;
                }
                nextInSet = start + count + 1;
                for (int i = start; i < start + count; i++) {
                    final Resource r = result.getResource(i);
                    if (options.startGUI) {
                        frame.display((String) r.getContent());
                    } else {
                        more((String) r.getContent());
                    }
                }
                messageln("displayed items " + (start + 1) + " to " + (start + count) + " of " + result.getSize());
            } catch (final NumberFormatException nfe) {
                errorln("wrong argument");
                return true;
            }
        } else if (args[0].equalsIgnoreCase("mkcol")) {
            // create collection
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            final XmldbURI collUri;
            try {
                collUri = XmldbURI.xmldbUriFor(args[1]);
            } catch (final URISyntaxException e) {
                errorln("could not parse collection name into a valid URI: " + e.getMessage());
                return false;
            }
            final EXistCollectionManagementService mgtService = (EXistCollectionManagementService) current.getService("CollectionManagementService", "1.0");
            final Collection newCollection = mgtService.createCollection(collUri);
            if (newCollection == null) {
                messageln("could not create collection.");
            } else {
                messageln("created collection.");
            }
            // re-read current collection
            current = DatabaseManager.getCollection(properties.getProperty(URI) + path, properties.getProperty(USER), properties.getProperty("password"));
            getResources();
        } else if (args[0].equalsIgnoreCase("put")) {
            // put a document or directory into the database
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            final boolean r = parse(Paths.get(args[1]));
            getResources();
            return r;
        } else if (args[0].equalsIgnoreCase("putzip")) {
            // put the contents of a zip archive into the database
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            final boolean r = parseZip(Paths.get(args[1]));
            getResources();
            return r;
        } else if (args[0].equalsIgnoreCase("putgz")) {
            // put the contents of a zip archive into the database
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            final boolean r = parseGZip(args[1]);
            getResources();
            return r;
        } else if (args[0].equalsIgnoreCase("blob")) {
            // put a document or directory into the database
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            storeBinary(args[1]);
            getResources();
        } else if (args[0].equalsIgnoreCase("rm")) {
            // remove document
            if (args.length < 2) {
                messageln("missing argument.");
                return true;
            }
            remove(args[1]);
            // re-read current collection
            current = DatabaseManager.getCollection(properties.getProperty("uri") + path, properties.getProperty(USER), properties.getProperty("password"));
            getResources();
        } else if (args[0].equalsIgnoreCase("rmcol")) {
            // remove collection
            if (args.length < 2) {
                messageln("wrong argument count.");
                return true;
            }
            final XmldbURI collUri;
            try {
                collUri = XmldbURI.xmldbUriFor(args[1]);
            } catch (final URISyntaxException e) {
                errorln("could not parse collection name into a valid URI: " + e.getMessage());
                return false;
            }
            rmcol(collUri);
            // re-read current collection
            current = DatabaseManager.getCollection(properties.getProperty(URI) + path, properties.getProperty(USER), properties.getProperty(PASSWORD));
            getResources();
        } else if (args[0].equalsIgnoreCase("adduser")) {
            if (args.length < 2) {
                System.err.println("Usage: adduser name");
                return true;
            }
            if (options.startGUI) {
                messageln("command not supported in GUI mode. Please use the \"Edit users\" menu option.");
                return true;
            }
            try {
                final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                String p1;
                String p2;
                while (true) {
                    p1 = console.readLine("password: ", '*');
                    p2 = console.readLine("re-enter password: ", '*');
                    if (p1.equals(p2)) {
                        break;
                    }
                    messageln("Entered passwords differ. Try again...");
                }
                final UserAider user = new UserAider(args[1]);
                user.setPassword(p1);
                final String groups = console.readLine("enter groups: ");
                final StringTokenizer tok = new StringTokenizer(groups, " ,");
                while (tok.hasMoreTokens()) {
                    final String group = tok.nextToken();
                    if (group.length() > 0) {
                        user.addGroup(group);
                    }
                }
                if (user.getGroups().length == 0) {
                    messageln("No groups specified, will be a member of the '" + SecurityManager.GUEST_GROUP + "' group!");
                    user.addGroup(SecurityManager.GUEST_GROUP);
                }
                mgtService.addAccount(user);
                messageln("User '" + user.getName() + "' created.");
            } catch (final Exception e) {
                errorln("ERROR: " + e.getMessage());
                e.printStackTrace();
            }
        } else if (args[0].equalsIgnoreCase("users")) {
            final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
            final Account[] users = mgtService.getAccounts();
            messageln("User\t\tGroups");
            messageln("-----------------------------------------");
            for (Account user : users) {
                System.out.print(user.getName() + "\t\t");
                final String[] groups = user.getGroups();
                for (int j = 0; j < groups.length; j++) {
                    System.out.print(groups[j]);
                    if (j + 1 < groups.length) {
                        System.out.print(", ");
                    }
                }
                System.out.println();
            }
        } else if (args[0].equalsIgnoreCase("passwd")) {
            if (options.startGUI) {
                messageln("command not supported in GUI mode. Please use the \"Edit users\" menu option.");
                return true;
            }
            if (args.length < 2) {
                messageln("Usage: passwd username");
                return true;
            }
            try {
                final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                final Account user = mgtService.getAccount(args[1]);
                if (user == null) {
                    messageln("no such user.");
                    return true;
                }
                String p1;
                String p2;
                while (true) {
                    p1 = console.readLine("password: ", '*');
                    p2 = console.readLine("re-enter password: ", '*');
                    if (p1.equals(p2)) {
                        break;
                    }
                    System.out.println(EOL + "entered passwords differ. Try again...");
                }
                user.setPassword(p1);
                mgtService.updateAccount(user);
                properties.setProperty(PASSWORD, p1);
            } catch (final Exception e) {
                errorln("ERROR: " + e.getMessage());
                e.printStackTrace();
            }
        } else if (args[0].equalsIgnoreCase("chmod")) {
            if (args.length < 2) {
                System.out.println("Usage: chmod [resource] mode");
                return true;
            }
            final Collection temp;
            if (args.length == 3) {
                System.out.println("trying collection: " + args[1]);
                temp = current.getChildCollection(args[1]);
                if (temp == null) {
                    System.out.println(EOL + "trying resource: " + args[1]);
                    final Resource r = current.getResource(args[1]);
                    if (r != null) {
                        final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                        mgtService.chmod(r, args[2]);
                    } else {
                        System.err.println("Resource " + args[1] + " not found.");
                    }
                } else {
                    final UserManagementService mgtService = (UserManagementService) temp.getService("UserManagementService", "1.0");
                    mgtService.chmod(args[2]);
                }
            } else {
                final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                mgtService.chmod(args[1]);
            }
            // re-read current collection
            current = DatabaseManager.getCollection(properties.getProperty(URI) + path, properties.getProperty(USER), properties.getProperty(PASSWORD));
            getResources();
        } else if (args[0].equalsIgnoreCase("chown")) {
            if (args.length < 3) {
                System.out.println("Usage: chown username group [resource]");
                return true;
            }
            final Collection temp;
            if (args.length == 4) {
                temp = current.getChildCollection(args[3]);
            } else {
                temp = current;
            }
            if (temp != null) {
                final UserManagementService mgtService = (UserManagementService) temp.getService("UserManagementService", "1.0");
                final Account u = mgtService.getAccount(args[1]);
                if (u == null) {
                    System.out.println("unknown user");
                    return true;
                }
                mgtService.chown(u, args[2]);
                System.out.println("owner changed.");
                getResources();
                return true;
            }
            final Resource res = current.getResource(args[3]);
            if (res != null) {
                final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                final Account u = mgtService.getAccount(args[1]);
                if (u == null) {
                    System.out.println("unknown user");
                    return true;
                }
                mgtService.chown(res, u, args[2]);
                getResources();
                return true;
            }
            System.err.println("Resource " + args[3] + " not found.");
        } else if (args[0].equalsIgnoreCase("lock") || args[0].equalsIgnoreCase("unlock")) {
            if (args.length < 2) {
                messageln("Usage: lock resource");
                return true;
            }
            final Resource res = current.getResource(args[1]);
            if (res != null) {
                final UserManagementService mgtService = (UserManagementService) current.getService("UserManagementService", "1.0");
                final Account user = mgtService.getAccount(properties.getProperty(USER, "guest"));
                if (args[0].equalsIgnoreCase("lock")) {
                    mgtService.lockResource(res, user);
                } else {
                    mgtService.unlockResource(res);
                }
            }
        } else if (args[0].equalsIgnoreCase("elements")) {
            System.out.println("Element occurrences in collection " + current.getName());
            System.out.println("--------------------------------------------" + "-----------");
            final IndexQueryService service = (IndexQueryService) current.getService("IndexQueryService", "1.0");
            final Occurrences[] elements = service.getIndexedElements(true);
            for (Occurrences element : elements) {
                System.out.println(formatString(element.getTerm().toString(), Integer.toString(element.getOccurrences()), 50));
            }
            return true;
        } else if (args[0].equalsIgnoreCase("xupdate")) {
            if (options.startGUI) {
                messageln("command not supported in GUI mode.");
                return true;
            }
            final StringBuilder command = new StringBuilder();
            try {
                while (true) {
                    final String lastLine = console.readLine("| ");
                    if (lastLine == null || lastLine.length() == 0) {
                        break;
                    }
                    command.append(lastLine);
                }
            } catch (final UserInterruptException e) {
            // TODO report error?
            }
            final String xupdate = "<xu:modifications version=\"1.0\" " + "xmlns:xu=\"http://www.xmldb.org/xupdate\">" + command.toString() + "</xu:modifications>";
            final XUpdateQueryService service = (XUpdateQueryService) current.getService("XUpdateQueryService", "1.0");
            final long mods = service.update(xupdate);
            System.out.println(mods + " modifications processed.");
        } else if (args[0].equalsIgnoreCase("map")) {
            final StringTokenizer tok = new StringTokenizer(args[1], "= ");
            final String prefix;
            if (args[1].startsWith("=")) {
                prefix = "";
            } else {
                if (tok.countTokens() < 2) {
                    messageln("please specify a namespace/prefix mapping as: prefix=namespaceURI");
                    return true;
                }
                prefix = tok.nextToken();
            }
            final String uri = tok.nextToken();
            namespaceMappings.put(prefix, uri);
        } else if (args[0].equalsIgnoreCase("set")) {
            if (args.length == 1) {
                properties.list(System.out);
            } else {
                try {
                    final StringTokenizer tok = new StringTokenizer(args[1], "= ");
                    if (tok.countTokens() < 2) {
                        System.err.println("please specify a key=value pair");
                        return true;
                    }
                    final String key = tok.nextToken();
                    final String val = tok.nextToken();
                    properties.setProperty(key, val);
                    current.setProperty(key, val);
                    getResources();
                } catch (final Exception e) {
                    System.err.println("Exception: " + e.getMessage());
                }
            }
        } else if (args[0].equalsIgnoreCase("shutdown")) {
            final DatabaseInstanceManager mgr = (DatabaseInstanceManager) current.getService("DatabaseInstanceManager", "1.0");
            if (mgr == null) {
                messageln("Service is not available");
                return true;
            }
            mgr.shutdown();
            return true;
        } else if (args[0].equalsIgnoreCase("help") || "?".equals(args[0])) {
            displayHelp();
        } else if (args[0].equalsIgnoreCase("quit")) {
            return false;
        // XXX:make it pluggable
        } else if (havePluggableCommands) {
            final EXistCollectionManagementService mgtService = (EXistCollectionManagementService) current.getService("CollectionManagementService", "1.0");
            try {
                mgtService.runCommand(args);
            } catch (final XMLDBException e) {
                if (e.getCause() != null && e.getCause().getClass().getName().equals("org.exist.plugin.command.CommandNotFoundException")) {
                    messageln("unknown command: '" + args[0] + "'");
                    return true;
                } else {
                    throw e;
                }
            }
        // ****************************************************************
        } else {
            messageln("unknown command: '" + args[0] + "'");
            return true;
        }
        path = newPath;
        return true;
    } catch (final Throwable e) {
        if (options.startGUI) {
            ClientFrame.showErrorMessage(getExceptionMessage(e), e);
        } else {
            errorln(getExceptionMessage(e));
            e.printStackTrace();
        }
        return true;
    }
}
Also used : Account(org.exist.security.Account) EXistCollectionManagementService(org.exist.xmldb.EXistCollectionManagementService) IndexQueryService(org.exist.xmldb.IndexQueryService) URISyntaxException(java.net.URISyntaxException) XUpdateQueryService(org.xmldb.api.modules.XUpdateQueryService) XmldbURI(org.exist.xmldb.XmldbURI) ExtendedResource(org.exist.xmldb.ExtendedResource) BinaryResource(org.xmldb.api.modules.BinaryResource) EXistResource(org.exist.xmldb.EXistResource) UserManagementService(org.exist.xmldb.UserManagementService) URISyntaxException(java.net.URISyntaxException) UnsupportedLookAndFeelException(javax.swing.UnsupportedLookAndFeelException) SAXException(org.xml.sax.SAXException) ArgumentException(se.softhouse.jargo.ArgumentException) StartException(org.exist.start.StartException) DatabaseInstanceManager(org.exist.xmldb.DatabaseInstanceManager) Collection(org.xmldb.api.base.Collection) UserAider(org.exist.security.internal.aider.UserAider)

Aggregations

UserAider (org.exist.security.internal.aider.UserAider)28 GroupAider (org.exist.security.internal.aider.GroupAider)15 UserManagementService (org.exist.xmldb.UserManagementService)9 Account (org.exist.security.Account)5 XMLDBException (org.xmldb.api.base.XMLDBException)5 EXistException (org.exist.EXistException)4 PermissionDeniedException (org.exist.security.PermissionDeniedException)4 SecurityManager (org.exist.security.SecurityManager)4 DBBroker (org.exist.storage.DBBroker)4 Test (org.junit.Test)4 Collection (org.xmldb.api.base.Collection)4 IOException (java.io.IOException)2 NamingException (javax.naming.NamingException)2 AbstractAccount (org.exist.security.AbstractAccount)2 AuthenticationException (org.exist.security.AuthenticationException)2 LockedDocumentMap (org.exist.storage.lock.LockedDocumentMap)2 EXistCollectionManagementService (org.exist.xmldb.EXistCollectionManagementService)2 Before (org.junit.Before)2 BinaryResource (org.xmldb.api.modules.BinaryResource)2 Either (com.evolvedbinary.j8fu.Either)1