Search in sources :

Example 31 with BrokerPool

use of org.exist.storage.BrokerPool in project exist by eXist-db.

the class PermissionsFunctionChownTest method changeDocumentGroupToSelfAsNonDBAOwner_clearsSetUidAndSetGid.

/**
 * With {@code posix-chown-restricted="false"},
 * as the document owner user change the group of {@link #USER1_DOC1} from "user1" to "user1".
 * Finally make sure that chown has cleared the setUid and setGid bits.
 */
@Test
public void changeDocumentGroupToSelfAsNonDBAOwner_clearsSetUidAndSetGid() throws AuthenticationException, EXistException, PermissionDeniedException, XPathException {
    final BrokerPool pool = existWebServer.getBrokerPool();
    final Subject user1 = pool.getSecurityManager().authenticate(USER1_NAME, USER1_PWD);
    // check the setUid and setGid bits are set before we begin
    assertDocumentSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), IS_SET);
    // change the owner
    changeGroup(user1, NOT_RESTRICTED, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), USER1_NAME);
    // check the setUid and setGid bits are now cleared
    assertDocumentSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), NOT_SET);
}
Also used : BrokerPool(org.exist.storage.BrokerPool)

Example 32 with BrokerPool

use of org.exist.storage.BrokerPool in project exist by eXist-db.

the class PermissionsFunctionChownTest method changeCollectionGroupToSelfAsDBA_preservesSetUidAndSetGid_restricted.

/**
 * With {@code posix-chown-restricted="true"},
 * as the DBA user change the group of {@link #USER1_COL2} from "user1" to "user1".
 * Finally make sure that chown has preserved the setUid and setGid bits.
 */
@Test
public void changeCollectionGroupToSelfAsDBA_preservesSetUidAndSetGid_restricted() throws EXistException, PermissionDeniedException, XPathException {
    final BrokerPool pool = existWebServer.getBrokerPool();
    final Subject user1 = pool.getSecurityManager().getSystemSubject();
    // check the setUid and setGid bits are set before we begin
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
    // change the owner
    changeGroup(user1, RESTRICTED, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), USER1_NAME);
    // check the setUid and setGid bits are still set
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
}
Also used : BrokerPool(org.exist.storage.BrokerPool)

Example 33 with BrokerPool

use of org.exist.storage.BrokerPool in project exist by eXist-db.

the class PermissionsFunctionChownTest method changeDocumentGroupToSelfAsNonDBAOwner_clearsSetUidAndSetGid_restricted.

/**
 * With {@code posix-chown-restricted="true"},
 * as the document owner user change the group of {@link #USER1_DOC1} from "user1" to "user1".
 * Finally make sure that chown has cleared the setUid and setGid bits.
 */
@Test
public void changeDocumentGroupToSelfAsNonDBAOwner_clearsSetUidAndSetGid_restricted() throws AuthenticationException, EXistException, PermissionDeniedException, XPathException {
    final BrokerPool pool = existWebServer.getBrokerPool();
    final Subject user1 = pool.getSecurityManager().authenticate(USER1_NAME, USER1_PWD);
    // check the setUid and setGid bits are set before we begin
    assertDocumentSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), IS_SET);
    // change the owner
    changeGroup(user1, RESTRICTED, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), USER1_NAME);
    // check the setUid and setGid bits are now cleared
    assertDocumentSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_XQUERY1), NOT_SET);
}
Also used : BrokerPool(org.exist.storage.BrokerPool)

Example 34 with BrokerPool

use of org.exist.storage.BrokerPool in project exist by eXist-db.

the class PermissionsFunctionChownTest method changeCollectionOwnerToSelfAsDBA_preservesSetUidAndSetGid_restricted.

/**
 * With {@code posix-chown-restricted="true"},
 * as the DBA user change the owner of {@link #USER1_COL2} from "user1" to "user1".
 * Finally make sure that chown has preserved the setUid and setGid bits.
 */
@Test
public void changeCollectionOwnerToSelfAsDBA_preservesSetUidAndSetGid_restricted() throws EXistException, PermissionDeniedException, XPathException {
    final BrokerPool pool = existWebServer.getBrokerPool();
    final Subject user1 = pool.getSecurityManager().getSystemSubject();
    // check the setUid and setGid bits are set before we begin
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
    // change the owner
    changeOwner(user1, RESTRICTED, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), USER1_NAME);
    // check the setUid and setGid bits are still set
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
}
Also used : BrokerPool(org.exist.storage.BrokerPool)

Example 35 with BrokerPool

use of org.exist.storage.BrokerPool in project exist by eXist-db.

the class PermissionsFunctionChownTest method changeCollectionGroupToSelfAsDBA_preservesSetUidAndSetGid.

/**
 * With {@code posix-chown-restricted="false"},
 * as the DBA user change the owner of {@link #USER1_COL2} from "user1" to "user1".
 * Finally make sure that chown has preserved the setUid and setGid bits.
 */
@Test
public void changeCollectionGroupToSelfAsDBA_preservesSetUidAndSetGid() throws EXistException, PermissionDeniedException, XPathException {
    final BrokerPool pool = existWebServer.getBrokerPool();
    final Subject user1 = pool.getSecurityManager().getSystemSubject();
    // check the setUid and setGid bits are set before we begin
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
    // change the owner
    changeGroup(user1, NOT_RESTRICTED, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), USER1_NAME);
    // check the setUid and setGid bits are still set
    assertCollectionSetUidSetGid(user1, TestConstants.TEST_COLLECTION_URI.append(USER1_COL2), IS_SET);
}
Also used : BrokerPool(org.exist.storage.BrokerPool)

Aggregations

BrokerPool (org.exist.storage.BrokerPool)381 DBBroker (org.exist.storage.DBBroker)300 Txn (org.exist.storage.txn.Txn)180 Sequence (org.exist.xquery.value.Sequence)157 Test (org.junit.Test)115 XQuery (org.exist.xquery.XQuery)105 Collection (org.exist.collections.Collection)71 StringInputSource (org.exist.util.StringInputSource)66 TransactionManager (org.exist.storage.txn.TransactionManager)61 Source (org.exist.source.Source)43 StringSource (org.exist.source.StringSource)40 CompiledXQuery (org.exist.xquery.CompiledXQuery)38 Path (java.nio.file.Path)22 XmldbURI (org.exist.xmldb.XmldbURI)21 XPathException (org.exist.xquery.XPathException)21 Properties (java.util.Properties)20 LockedDocument (org.exist.dom.persistent.LockedDocument)20 InputSource (org.xml.sax.InputSource)20 IOException (java.io.IOException)19 XQueryContext (org.exist.xquery.XQueryContext)19