Search in sources :

Example 6 with User

use of com.baidu.hugegraph.structure.auth.User in project incubator-hugegraph-toolchain by apache.

the class AuthRestoreTest method testAuthRestoreForUser.

@Test
public void testAuthRestoreForUser() {
    this.loadData(HugeType.USER, "auth_users.txt");
    String[] args = new String[] { "--throw-mode", "true", "--user", USER_NAME, "--password", USER_PASSWORD, "auth-restore", "--types", "user", "--directory", DEFAULT_URL, "--init-password", "123456" };
    HugeGraphCommand.main(args);
    List<User> userList = this.client.auth().listUsers();
    Map<String, User> userMap = Maps.newHashMap();
    for (User user1 : userList) {
        userMap.put(user1.name(), user1);
    }
    Assert.assertTrue(userMap.containsKey("test_user1"));
}
Also used : User(com.baidu.hugegraph.structure.auth.User) Test(org.junit.Test)

Example 7 with User

use of com.baidu.hugegraph.structure.auth.User in project incubator-hugegraph-toolchain by apache.

the class AuthRestoreTest method testAuthRestoreWithIgnoreStrategy.

@Test
public void testAuthRestoreWithIgnoreStrategy() {
    this.loadData(HugeType.USER, "auth_users_conflict.txt");
    String[] args = new String[] { "--throw-mode", "true", "--user", USER_NAME, "--password", USER_PASSWORD, "auth-restore", "--types", "user", "--strategy", "ignore", "--init-password", "123456" };
    HugeGraphCommand.main(args);
    List<User> userList = this.client.auth().listUsers();
    Map<String, User> userMap = Maps.newHashMap();
    for (User user1 : userList) {
        userMap.put(user1.name(), user1);
    }
    Assert.assertTrue(userMap.containsKey("admin"));
}
Also used : User(com.baidu.hugegraph.structure.auth.User) Test(org.junit.Test)

Example 8 with User

use of com.baidu.hugegraph.structure.auth.User in project incubator-hugegraph-toolchain by apache.

the class AuthRestoreTest method testAuthRestoreForAllType.

@Test
public void testAuthRestoreForAllType() {
    this.loadData(HugeType.USER, "auth_users.txt");
    this.loadData(HugeType.TARGET, "auth_targets.txt");
    this.loadData(HugeType.GROUP, "auth_groups.txt");
    this.loadData(HugeType.BELONG, "auth_belongs.txt");
    this.loadData(HugeType.ACCESS, "auth_accesses.txt");
    String[] args = new String[] { "--throw-mode", "true", "--user", USER_NAME, "--password", USER_PASSWORD, "auth-restore", "--directory", DEFAULT_URL, "--init-password", "123456", "--strategy", "ignore" };
    HugeGraphCommand.main(args);
    List<String> idList = Lists.newArrayList();
    List<User> userList = this.client.auth().listUsers();
    Map<String, User> userMap = Maps.newHashMap();
    for (User user1 : userList) {
        userMap.put(user1.name(), user1);
    }
    Assert.assertTrue(userMap.containsKey("test_user1"));
    idList.add(userMap.get("test_user1").id().toString());
    List<Group> groups = this.client.auth().listGroups();
    Map<String, Group> groupMap = Maps.newHashMap();
    for (Group group : groups) {
        groupMap.put(group.name(), group);
    }
    Assert.assertTrue(groupMap.containsKey("test_group6"));
    idList.add(groupMap.get("test_group6").id().toString());
    List<Target> targets = this.client.auth().listTargets();
    Map<String, Target> targetMap = Maps.newHashMap();
    for (Target target : targets) {
        targetMap.put(target.name(), target);
    }
    Assert.assertTrue(targetMap.containsKey("test_target1"));
    idList.add(targetMap.get("test_target1").id().toString());
    List<Belong> belongs = this.client.auth().listBelongs();
    Assert.assertTrue(CollectionUtils.isNotEmpty(belongs));
    boolean checkUserAndGroup = false;
    for (Belong belong : belongs) {
        if (idList.contains(belong.user().toString()) && idList.contains(belong.group().toString())) {
            checkUserAndGroup = true;
            break;
        }
    }
    Assert.assertTrue(checkUserAndGroup);
    List<Access> accesses = this.client.auth().listAccesses();
    Assert.assertTrue(CollectionUtils.isNotEmpty(accesses));
    boolean checkGroupAndTarget = false;
    for (Access access : accesses) {
        if (idList.contains(access.group().toString()) && idList.contains(access.target().toString())) {
            checkGroupAndTarget = true;
            break;
        }
    }
    Assert.assertTrue(checkGroupAndTarget);
}
Also used : Group(com.baidu.hugegraph.structure.auth.Group) User(com.baidu.hugegraph.structure.auth.User) Access(com.baidu.hugegraph.structure.auth.Access) Target(com.baidu.hugegraph.structure.auth.Target) Belong(com.baidu.hugegraph.structure.auth.Belong) Test(org.junit.Test)

Example 9 with User

use of com.baidu.hugegraph.structure.auth.User in project incubator-hugegraph-toolchain by apache.

the class AuthManagerTest method testAuth.

@Test
public void testAuth() {
    User user = new User();
    user.name("bob");
    user.password("123456");
    user = auth().createUser(user);
    Group group = new Group();
    group.name("managers");
    group = auth().createGroup(group);
    Target gremlin = new Target();
    gremlin.name("gremlin");
    gremlin.graph("hugegraph");
    gremlin.url("127.0.0.1:8080");
    gremlin.resources(new HugeResource(HugeResourceType.GREMLIN));
    gremlin = auth().createTarget(gremlin);
    Target task = new Target();
    task.name("task");
    task.graph("hugegraph");
    task.url("127.0.0.1:8080");
    task.resources(new HugeResource(HugeResourceType.TASK));
    task = auth().createTarget(task);
    Belong belong = new Belong();
    belong.user(user);
    belong.group(group);
    belong = auth().createBelong(belong);
    Access access1 = new Access();
    access1.group(group);
    access1.target(gremlin);
    access1.permission(HugePermission.EXECUTE);
    access1 = auth().createAccess(access1);
    Access access2 = new Access();
    access2.group(group);
    access2.target(task);
    access2.permission(HugePermission.READ);
    access2 = auth().createAccess(access2);
    Project project1 = new Project("test");
    project1 = auth().createProject(project1);
    Assert.assertEquals("test", project1.name());
    Project project2 = new Project("test2");
    project2 = auth().createProject(project2);
    Assert.assertEquals("test2", project2.name());
    Project newProject1 = auth().getProject(project1);
    Assert.assertEquals(newProject1.id(), project1.id());
    Assert.assertTrue(CollectionUtils.isEmpty(newProject1.graphs()));
    List<Project> projects = auth().listProjects();
    Assert.assertNotNull(projects);
    Assert.assertEquals(2, projects.size());
    Set<String> graphs = ImmutableSet.of("graph1", "graph2");
    newProject1 = auth().projectAddGraphs(project1, graphs);
    Assert.assertNotNull(newProject1);
    Assert.assertEquals(graphs, newProject1.graphs());
    graphs = ImmutableSet.of("graph2");
    newProject1 = auth().projectRemoveGraphs(project1, ImmutableSet.of("graph1"));
    Assert.assertNotNull(newProject1);
    Assert.assertEquals(graphs, newProject1.graphs());
    Object project1Id = project1.id();
    project1 = new Project(project1Id);
    project1.description("test description");
    newProject1 = auth().updateProject(project1);
    Assert.assertEquals(newProject1.description(), project1.description());
    auth().deleteProject(project2);
    projects.remove(project2);
    List<Project> newProjects = auth().listProjects();
    Assert.assertEquals(newProjects, projects);
    UserRole role = auth().getUserRole(user);
    String r = "{\"roles\":{\"hugegraph\":" + "{\"READ\":[{\"type\":\"TASK\",\"label\":\"*\",\"properties\":null}]," + "\"EXECUTE\":[{\"type\":\"GREMLIN\",\"label\":\"*\",\"properties\":null}]}}}";
    Assert.assertEquals(r, role.toString());
    Login login = new Login();
    login.name("bob");
    login.password("123456");
    LoginResult result = auth().login(login);
    String token = result.token();
    HugeClient client = baseClient();
    client.setAuthContext("Bearer " + token);
    TokenPayload payload = auth().verifyToken();
    Assert.assertEquals("bob", payload.username());
    Assert.assertEquals(user.id(), payload.userId());
    auth().logout();
    client.resetAuthContext();
}
Also used : Group(com.baidu.hugegraph.structure.auth.Group) HugeClient(com.baidu.hugegraph.driver.HugeClient) User(com.baidu.hugegraph.structure.auth.User) LoginResult(com.baidu.hugegraph.structure.auth.LoginResult) Access(com.baidu.hugegraph.structure.auth.Access) Login(com.baidu.hugegraph.structure.auth.Login) TokenPayload(com.baidu.hugegraph.structure.auth.TokenPayload) Project(com.baidu.hugegraph.structure.auth.Project) Target(com.baidu.hugegraph.structure.auth.Target) UserRole(com.baidu.hugegraph.structure.auth.User.UserRole) HugeResource(com.baidu.hugegraph.structure.auth.HugeResource) Belong(com.baidu.hugegraph.structure.auth.Belong) Test(org.junit.Test)

Example 10 with User

use of com.baidu.hugegraph.structure.auth.User in project incubator-hugegraph-toolchain by apache.

the class TokenApiTest method testVerify.

@Test
public void testVerify() {
    User user1 = new User();
    user1.name("user1");
    user1.password("p1");
    User user = userAPI.create(user1);
    Login login = new Login();
    login.name("user1");
    login.password("p1");
    LoginResult result = loginAPI.login(login);
    Assert.assertNotNull(result);
    Assert.assertNotNull(result.token());
    // Client will set Authentication Header use Basic
    Assert.assertThrows(ServerException.class, () -> {
        tokenAPI.verifyToken();
    }, e -> {
        Assert.assertContains("Only HTTP Bearer authentication is supported", e.getMessage());
    });
    String token = result.token();
    RestClient client = Whitebox.getInternalState(tokenAPI, "client");
    client.setAuthContext("Bearer " + token);
    TokenPayload payload = tokenAPI.verifyToken();
    Assert.assertEquals("user1", payload.username());
    Assert.assertEquals(user.id(), payload.userId());
    client.setAuthContext("Bearer qweqwaasa");
    Assert.assertThrows(ServerException.class, () -> {
        tokenAPI.verifyToken();
    }, e -> {
        Assert.assertContains("Invalid token", e.getMessage());
    });
    RestClient client2 = Whitebox.getInternalState(logoutAPI, "client");
    Assert.assertThrows(ServerException.class, () -> {
        logoutAPI.logout();
    }, e -> {
        Assert.assertContains("Only HTTP Bearer authentication is supported", e.getMessage());
    });
    client2.setAuthContext("Bearer " + token);
    logoutAPI.logout();
}
Also used : User(com.baidu.hugegraph.structure.auth.User) LoginResult(com.baidu.hugegraph.structure.auth.LoginResult) RestClient(com.baidu.hugegraph.client.RestClient) Login(com.baidu.hugegraph.structure.auth.Login) TokenPayload(com.baidu.hugegraph.structure.auth.TokenPayload) Test(org.junit.Test)

Aggregations

User (com.baidu.hugegraph.structure.auth.User)14 Test (org.junit.Test)12 Login (com.baidu.hugegraph.structure.auth.Login)4 LoginResult (com.baidu.hugegraph.structure.auth.LoginResult)4 Access (com.baidu.hugegraph.structure.auth.Access)3 Belong (com.baidu.hugegraph.structure.auth.Belong)3 Group (com.baidu.hugegraph.structure.auth.Group)3 Target (com.baidu.hugegraph.structure.auth.Target)3 RestClient (com.baidu.hugegraph.client.RestClient)2 Project (com.baidu.hugegraph.structure.auth.Project)2 TokenPayload (com.baidu.hugegraph.structure.auth.TokenPayload)2 UserRole (com.baidu.hugegraph.structure.auth.User.UserRole)2 HugeClient (com.baidu.hugegraph.driver.HugeClient)1 HugeResource (com.baidu.hugegraph.structure.auth.HugeResource)1