Search in sources :

Example 1 with MutableAuthenticationService

use of org.alfresco.service.cmr.security.MutableAuthenticationService in project alfresco-remote-api by Alfresco.

the class AbstractWorkflowRestApiTest method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    ApplicationContext appContext = getServer().getApplicationContext();
    namespaceService = (NamespaceService) appContext.getBean("NamespaceService");
    workflowService = (WorkflowService) appContext.getBean("WorkflowService");
    MutableAuthenticationService authenticationService = (MutableAuthenticationService) appContext.getBean("AuthenticationService");
    PersonService personService = (PersonService) appContext.getBean("PersonService");
    SearchService searchService = (SearchService) appContext.getBean("SearchService");
    FileFolderService fileFolderService = (FileFolderService) appContext.getBean("FileFolderService");
    nodeService = (NodeService) appContext.getBean("NodeService");
    // for the purposes of the tests make sure workflow engine is enabled/visible.
    WorkflowAdminServiceImpl workflowAdminService = (WorkflowAdminServiceImpl) appContext.getBean("workflowAdminService");
    this.wfTestHelper = new WorkflowTestHelper(workflowAdminService, getEngine(), true);
    AuthorityService authorityService = (AuthorityService) appContext.getBean("AuthorityService");
    personManager = new TestPersonManager(authenticationService, personService, nodeService);
    groupManager = new TestGroupManager(authorityService);
    authenticationComponent = (AuthenticationComponent) appContext.getBean("authenticationComponent");
    dictionaryService = (DictionaryService) appContext.getBean("dictionaryService");
    personManager.createPerson(USER1);
    personManager.createPerson(USER2);
    personManager.createPerson(USER3);
    authenticationComponent.setSystemUserAsCurrentUser();
    groupManager.addUserToGroup(GROUP, USER2);
    packageRef = workflowService.createPackage(null);
    NodeRef companyHome = searchService.selectNodes(nodeService.getRootNode(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE), COMPANY_HOME, null, namespaceService, false).get(0);
    contentNodeRef = fileFolderService.create(companyHome, TEST_CONTENT + System.currentTimeMillis(), ContentModel.TYPE_CONTENT).getNodeRef();
    authenticationComponent.clearCurrentSecurityContext();
}
Also used : TestPersonManager(org.alfresco.repo.security.person.TestPersonManager) NodeRef(org.alfresco.service.cmr.repository.NodeRef) ApplicationContext(org.springframework.context.ApplicationContext) PersonService(org.alfresco.service.cmr.security.PersonService) SearchService(org.alfresco.service.cmr.search.SearchService) AuthorityService(org.alfresco.service.cmr.security.AuthorityService) WorkflowAdminServiceImpl(org.alfresco.repo.workflow.WorkflowAdminServiceImpl) FileFolderService(org.alfresco.service.cmr.model.FileFolderService) MutableAuthenticationService(org.alfresco.service.cmr.security.MutableAuthenticationService) WorkflowTestHelper(org.alfresco.repo.workflow.WorkflowTestHelper) TestGroupManager(org.alfresco.repo.security.person.TestGroupManager)

Example 2 with MutableAuthenticationService

use of org.alfresco.service.cmr.security.MutableAuthenticationService in project alfresco-remote-api by Alfresco.

the class ReplicationRestApiTest method setUp.

@Override
protected void setUp() throws Exception {
    super.setUp();
    ApplicationContext appContext = getServer().getApplicationContext();
    nodeService = (NodeService) appContext.getBean("NodeService");
    replicationService = (ReplicationService) appContext.getBean("ReplicationService");
    actionTrackingService = (ActionTrackingService) appContext.getBean("actionTrackingService");
    repositoryHelper = (Repository) appContext.getBean("repositoryHelper");
    transactionService = (TransactionService) appContext.getBean("transactionService");
    MutableAuthenticationService authenticationService = (MutableAuthenticationService) appContext.getBean("AuthenticationService");
    PersonService personService = (PersonService) appContext.getBean("PersonService");
    personManager = new TestPersonManager(authenticationService, personService, nodeService);
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    personManager.createPerson(USER_NORMAL);
    // Ensure we start with no replication definitions
    // (eg another test left them behind)
    AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
    for (ReplicationDefinition rd : replicationService.loadReplicationDefinitions()) {
        replicationService.deleteReplicationDefinition(rd);
    }
    txn.commit();
    // Grab a reference to the data dictionary
    dataDictionary = nodeService.getChildByName(repositoryHelper.getCompanyHome(), ContentModel.ASSOC_CONTAINS, "Data Dictionary");
    AuthenticationUtil.clearCurrentSecurityContext();
}
Also used : TestPersonManager(org.alfresco.repo.security.person.TestPersonManager) UserTransaction(javax.transaction.UserTransaction) ApplicationContext(org.springframework.context.ApplicationContext) ReplicationDefinition(org.alfresco.service.cmr.replication.ReplicationDefinition) PersonService(org.alfresco.service.cmr.security.PersonService) MutableAuthenticationService(org.alfresco.service.cmr.security.MutableAuthenticationService)

Example 3 with MutableAuthenticationService

use of org.alfresco.service.cmr.security.MutableAuthenticationService in project alfresco-remote-api by Alfresco.

the class RunningActionRestApiTest method setUp.

@SuppressWarnings("unchecked")
@Override
protected void setUp() throws Exception {
    super.setUp();
    ApplicationContext appContext = getServer().getApplicationContext();
    nodeService = (NodeService) appContext.getBean("NodeService");
    replicationService = (ReplicationService) appContext.getBean("ReplicationService");
    actionTrackingService = (ActionTrackingService) appContext.getBean("actionTrackingService");
    repositoryHelper = (Repository) appContext.getBean("repositoryHelper");
    transactionService = (TransactionService) appContext.getBean("transactionService");
    executingActionsCache = (SimpleCache<String, ExecutionDetails>) appContext.getBean("executingActionsCache");
    MutableAuthenticationService authenticationService = (MutableAuthenticationService) appContext.getBean("AuthenticationService");
    PersonService personService = (PersonService) appContext.getBean("PersonService");
    personManager = new TestPersonManager(authenticationService, personService, nodeService);
    UserTransaction txn = transactionService.getUserTransaction();
    txn.begin();
    personManager.createPerson(USER_NORMAL);
    // Ensure we start with no replication definitions
    // (eg another test left them behind)
    AuthenticationUtil.setFullyAuthenticatedUser(AuthenticationUtil.getAdminUserName());
    for (ReplicationDefinition rd : replicationService.loadReplicationDefinitions()) {
        replicationService.deleteReplicationDefinition(rd);
    }
    txn.commit();
    // Grab a reference to the data dictionary
    dataDictionary = nodeService.getChildByName(repositoryHelper.getCompanyHome(), ContentModel.ASSOC_CONTAINS, "Data Dictionary");
    AuthenticationUtil.clearCurrentSecurityContext();
}
Also used : TestPersonManager(org.alfresco.repo.security.person.TestPersonManager) UserTransaction(javax.transaction.UserTransaction) ApplicationContext(org.springframework.context.ApplicationContext) ReplicationDefinition(org.alfresco.service.cmr.replication.ReplicationDefinition) PersonService(org.alfresco.service.cmr.security.PersonService) ExecutionDetails(org.alfresco.service.cmr.action.ExecutionDetails) MutableAuthenticationService(org.alfresco.service.cmr.security.MutableAuthenticationService)

Example 4 with MutableAuthenticationService

use of org.alfresco.service.cmr.security.MutableAuthenticationService in project alfresco-remote-api by Alfresco.

the class TestPeople method testGetPerson_withCustomProps.

@Test
public void testGetPerson_withCustomProps() throws PublicApiException {
    // Create the person directly using the Java services - we don't want to test
    // the REST API's "create person" function here, so we're isolating this test from it.
    MutableAuthenticationService authService = applicationContext.getBean("AuthenticationService", MutableAuthenticationService.class);
    PreferenceService prefService = applicationContext.getBean("PreferenceService", PreferenceService.class);
    Map<QName, Serializable> nodeProps = new HashMap<>();
    // The papi:lunchable aspect should be auto-added for the papi:lunch property
    nodeProps.put(PROP_LUNCH, "Falafel wrap");
    nodeProps.put(PROP_LUNCH_COMMENTS, "");
    // These properties should not be present when a person is retrieved
    // since they are present as top-level fields.
    String userName = "docbrown@" + account1.getId();
    nodeProps.put(ContentModel.PROP_USERNAME, userName);
    nodeProps.put(ContentModel.PROP_FIRSTNAME, "Doc");
    nodeProps.put(ContentModel.PROP_LASTNAME, "Brown");
    nodeProps.put(ContentModel.PROP_JOBTITLE, "Inventor");
    nodeProps.put(ContentModel.PROP_LOCATION, "Location");
    nodeProps.put(ContentModel.PROP_TELEPHONE, "123345");
    nodeProps.put(ContentModel.PROP_MOBILE, "456456");
    nodeProps.put(ContentModel.PROP_EMAIL, "doc.brown@example.com");
    nodeProps.put(ContentModel.PROP_ORGANIZATION, "Acme");
    nodeProps.put(ContentModel.PROP_COMPANYADDRESS1, "123 Acme Crescent");
    nodeProps.put(ContentModel.PROP_COMPANYADDRESS2, "Cholsey");
    nodeProps.put(ContentModel.PROP_COMPANYADDRESS3, "Oxfordshire");
    nodeProps.put(ContentModel.PROP_COMPANYPOSTCODE, "OX10 1AB");
    nodeProps.put(ContentModel.PROP_COMPANYTELEPHONE, "098876234");
    nodeProps.put(ContentModel.PROP_COMPANYFAX, "098234876");
    nodeProps.put(ContentModel.PROP_COMPANYEMAIL, "info@example.com");
    nodeProps.put(ContentModel.PROP_SKYPE, "doc.brown");
    nodeProps.put(ContentModel.PROP_INSTANTMSG, "doc.brown.instmsg");
    nodeProps.put(ContentModel.PROP_USER_STATUS, "status");
    nodeProps.put(ContentModel.PROP_USER_STATUS_TIME, new Date());
    nodeProps.put(ContentModel.PROP_GOOGLEUSERNAME, "doc.brown.google");
    nodeProps.put(ContentModel.PROP_SIZE_QUOTA, 12345000);
    nodeProps.put(ContentModel.PROP_SIZE_CURRENT, 1230);
    nodeProps.put(ContentModel.PROP_EMAIL_FEED_DISABLED, false);
    // TODO: PROP_PERSON_DESCRIPTION?
    // Namespaces that should be filtered
    nodeProps.put(ContentModel.PROP_ENABLED, true);
    nodeProps.put(ContentModel.PROP_SYS_NAME, "name-value");
    // Create a password and enable the user so that we can check the usr:* props aren't present later.
    AuthenticationUtil.setFullyAuthenticatedUser("admin@" + account1.getId());
    authService.createAuthentication(userName, "password".toCharArray());
    authService.setAuthenticationEnabled(userName, true);
    personService.createPerson(nodeProps);
    // Set a preference, so that we can test that we're filtering this property correctly.
    prefService.setPreferences(userName, Collections.singletonMap("olives", "green"));
    // Get the person using the REST API
    publicApiClient.setRequestContext(new RequestContext(account1.getId(), account1Admin, "admin"));
    Person person = people.getPerson(userName);
    // Did we get the correct aspects/properties?
    assertEquals(userName, person.getId());
    assertEquals("Doc", person.getFirstName());
    assertEquals("Falafel wrap", person.getProperties().get("papi:lunch"));
    assertTrue(person.getAspectNames().contains("papi:lunchable"));
    // Empty (zero length) string values are considered to be
    // null values, and will be represented the same as null
    // values (i.e. by non-existence of the property).
    assertNull(person.getProperties().get("papi:lunchcomments"));
    // Check that no properties are present that should have been filtered by namespace.
    for (String key : person.getProperties().keySet()) {
        if (key.startsWith("cm:") || key.startsWith("sys:") || key.startsWith("usr:")) {
            Object value = person.getProperties().get(key);
            String keyValueStr = String.format("(key=%s, value=%s)", key, value);
            fail("Property " + keyValueStr + " found with namespace that should have been excluded.");
        }
    }
}
Also used : Serializable(java.io.Serializable) PreferenceService(org.alfresco.service.cmr.preference.PreferenceService) HashMap(java.util.HashMap) QName(org.alfresco.service.namespace.QName) JSONObject(org.json.simple.JSONObject) RequestContext(org.alfresco.rest.api.tests.client.RequestContext) MutableAuthenticationService(org.alfresco.service.cmr.security.MutableAuthenticationService) Person(org.alfresco.rest.api.tests.client.data.Person) Date(java.util.Date) Test(org.junit.Test)

Aggregations

MutableAuthenticationService (org.alfresco.service.cmr.security.MutableAuthenticationService)4 TestPersonManager (org.alfresco.repo.security.person.TestPersonManager)3 PersonService (org.alfresco.service.cmr.security.PersonService)3 ApplicationContext (org.springframework.context.ApplicationContext)3 UserTransaction (javax.transaction.UserTransaction)2 ReplicationDefinition (org.alfresco.service.cmr.replication.ReplicationDefinition)2 Serializable (java.io.Serializable)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 TestGroupManager (org.alfresco.repo.security.person.TestGroupManager)1 WorkflowAdminServiceImpl (org.alfresco.repo.workflow.WorkflowAdminServiceImpl)1 WorkflowTestHelper (org.alfresco.repo.workflow.WorkflowTestHelper)1 RequestContext (org.alfresco.rest.api.tests.client.RequestContext)1 Person (org.alfresco.rest.api.tests.client.data.Person)1 ExecutionDetails (org.alfresco.service.cmr.action.ExecutionDetails)1 FileFolderService (org.alfresco.service.cmr.model.FileFolderService)1 PreferenceService (org.alfresco.service.cmr.preference.PreferenceService)1 NodeRef (org.alfresco.service.cmr.repository.NodeRef)1 SearchService (org.alfresco.service.cmr.search.SearchService)1 AuthorityService (org.alfresco.service.cmr.security.AuthorityService)1