Search in sources :

Example 11 with LoginWorker

use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.

the class InMemoryConstraintTest method testLoadingLastPage.

@Test
public void testLoadingLastPage() throws LoginException {
    LoginWorker lw = AppBeans.get(LoginWorker.NAME);
    UserSession userSession = lw.login("constraintUser3", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
    assertNotNull(userSession);
    UserSessionSource uss = AppBeans.get(UserSessionSource.class);
    UserSession savedUserSession = uss.getUserSession();
    ((TestUserSessionSource) uss).setUserSession(userSession);
    try {
        DataManager dataManager = AppBeans.get(DataManager.NAME);
        dataManager = dataManager.secure();
        LoadContext loadContext = new LoadContext(User.class).setView(View.LOCAL);
        loadContext.setQuery(new LoadContext.Query("select u from sec$User u where (u.login like 'user%' or u.login like 'constraintUser%') order by u.login desc"));
        loadContext.getQuery().setMaxResults(30);
        loadContext.getQuery().setFirstResult(30);
        List<User> resultList = dataManager.loadList(loadContext);
        assertEquals(8, resultList.size());
        assertEquals("user133", resultList.get(0).getLogin());
        assertEquals("user132", resultList.get(1).getLogin());
        assertEquals("user131", resultList.get(2).getLogin());
    } finally {
        ((TestUserSessionSource) uss).setUserSession(savedUserSession);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession)

Example 12 with LoginWorker

use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.

the class ParentClassConstraintTest method testConstraintsOnParentAndCurrentMetaClass.

@Test
public void testConstraintsOnParentAndCurrentMetaClass() throws LoginException {
    DataManager dataManager = AppBeans.get(DataManager.NAME);
    LoadContext<SearchFolder> loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
    loadContext.setQueryString("select f from sec$SearchFolder f");
    List resultList = dataManager.loadList(loadContext);
    assertEquals(2, resultList.size());
    LoginWorker lw = AppBeans.get(LoginWorker.NAME);
    UserSession userSession = lw.login("constraintUser2", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
    assertNotNull(userSession);
    UserSessionSource uss = AppBeans.get(UserSessionSource.class);
    UserSession savedUserSession = uss.getUserSession();
    ((TestUserSessionSource) uss).setUserSession(userSession);
    try {
        dataManager = AppBeans.get(DataManager.NAME);
        dataManager = dataManager.secure();
        loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
        loadContext.setQueryString("select f from sec$SearchFolder f");
        resultList = dataManager.loadList(loadContext);
        assertEquals(0, resultList.size());
    } finally {
        ((TestUserSessionSource) uss).setUserSession(savedUserSession);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) ArrayList(java.util.ArrayList) List(java.util.List)

Example 13 with LoginWorker

use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.

the class ParentClassConstraintTest method testConstraintsOnMappedSuperClass.

@Test
public void testConstraintsOnMappedSuperClass() throws LoginException {
    DataManager dataManager = AppBeans.get(DataManager.NAME);
    LoadContext<SearchFolder> loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
    loadContext.setQueryString("select f from sec$SearchFolder f");
    List resultList = dataManager.loadList(loadContext);
    assertEquals(2, resultList.size());
    LoginWorker lw = AppBeans.get(LoginWorker.NAME);
    UserSession userSession = lw.login("constraintUser3", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
    assertNotNull(userSession);
    UserSessionSource uss = AppBeans.get(UserSessionSource.class);
    UserSession savedUserSession = uss.getUserSession();
    ((TestUserSessionSource) uss).setUserSession(userSession);
    try {
        dataManager = AppBeans.get(DataManager.NAME);
        dataManager = dataManager.secure();
        loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
        loadContext.setQueryString("select f from sec$SearchFolder f");
        resultList = dataManager.loadList(loadContext);
        assertEquals(0, resultList.size());
    } finally {
        ((TestUserSessionSource) uss).setUserSession(savedUserSession);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) ArrayList(java.util.ArrayList) List(java.util.List)

Example 14 with LoginWorker

use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.

the class ParentClassConstraintTest method testConstraintsOnParentClass.

@Test
public void testConstraintsOnParentClass() throws LoginException {
    DataManager dataManager = AppBeans.get(DataManager.NAME);
    LoadContext<SearchFolder> loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
    loadContext.setQueryString("select f from sec$SearchFolder f");
    List resultList = dataManager.loadList(loadContext);
    assertEquals(2, resultList.size());
    LoginWorker lw = AppBeans.get(LoginWorker.NAME);
    UserSession userSession = lw.login("constraintUser1", passwordEncryption.getPlainHash(PASSWORD), Locale.getDefault());
    assertNotNull(userSession);
    UserSessionSource uss = AppBeans.get(UserSessionSource.class);
    UserSession savedUserSession = uss.getUserSession();
    ((TestUserSessionSource) uss).setUserSession(userSession);
    try {
        dataManager = AppBeans.get(DataManager.NAME);
        dataManager = dataManager.secure();
        loadContext = new LoadContext<>(SearchFolder.class).setView(View.LOCAL);
        loadContext.setQueryString("select f from sec$SearchFolder f");
        resultList = dataManager.loadList(loadContext);
        assertEquals(1, resultList.size());
    } finally {
        ((TestUserSessionSource) uss).setUserSession(savedUserSession);
    }
}
Also used : LoginWorker(com.haulmont.cuba.security.app.LoginWorker) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) UserSession(com.haulmont.cuba.security.global.UserSession) ArrayList(java.util.ArrayList) List(java.util.List)

Example 15 with LoginWorker

use of com.haulmont.cuba.security.app.LoginWorker in project cuba by cuba-platform.

the class ConstraintTest method test.

@Test
public void test() throws LoginException {
    LoginWorker lw = AppBeans.get(LoginWorker.NAME);
    UserSession userSession = lw.login(USER_LOGIN, passwordEncryption.getPlainHash(USER_PASSW), Locale.getDefault());
    assertNotNull(userSession);
    List<ConstraintData> constraints = userSession.getConstraints("sys$Server");
    assertEquals(2, constraints.size());
    List<ConstraintData> roleConstraints = userSession.getConstraints("sec$UserRole");
    assertEquals(1, roleConstraints.size());
    UserSessionSource uss = AppBeans.get(UserSessionSource.class);
    UserSession savedUserSession = uss.getUserSession();
    ((TestUserSessionSource) uss).setUserSession(userSession);
    try {
        DataManager dm = AppBeans.get(DataManager.NAME);
        LoadContext loadContext = new LoadContext(Server.class).setQuery(new LoadContext.Query("select s from sys$Server s"));
        List<Server> list = dm.loadList(loadContext);
        for (Server server : list) {
            if (server.getId().equals(serverId))
                fail("Constraints have not taken effect for some reason");
        }
        // test constraint that contains session parameter
        loadContext = new LoadContext(UserRole.class).setQuery(new LoadContext.Query("select ur from sec$UserRole ur"));
        List<UserRole> userRoles = dm.loadList(loadContext);
        if (!userRoles.isEmpty()) {
            fail("Constraint with session attribute failed");
        }
    } finally {
        ((TestUserSessionSource) uss).setUserSession(savedUserSession);
    }
}
Also used : ConstraintData(com.haulmont.cuba.security.global.ConstraintData) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) Server(com.haulmont.cuba.core.entity.Server) TestUserSessionSource(com.haulmont.cuba.testsupport.TestUserSessionSource) LoginWorker(com.haulmont.cuba.security.app.LoginWorker) UserSession(com.haulmont.cuba.security.global.UserSession) Test(org.junit.Test)

Aggregations

LoginWorker (com.haulmont.cuba.security.app.LoginWorker)25 UserSession (com.haulmont.cuba.security.global.UserSession)25 TestUserSessionSource (com.haulmont.cuba.testsupport.TestUserSessionSource)23 Test (org.junit.Test)16 List (java.util.List)8 ArrayList (java.util.ArrayList)7 ConfigStorageService (com.haulmont.cuba.core.app.ConfigStorageService)4 KeyValueEntity (com.haulmont.cuba.core.entity.KeyValueEntity)3 Server (com.haulmont.cuba.core.entity.Server)2 Transaction (com.haulmont.cuba.core.Transaction)1 DataService (com.haulmont.cuba.core.app.DataService)1 ConstraintData (com.haulmont.cuba.security.global.ConstraintData)1