@Test(groups = "security") public void testEffectiveRepoPermissions() { Set<ItemPermission> itemPermissions = artifactory.repository(localRepository.getKey()).effectivePermissions(); assertItemPermissions(itemPermissions); }
private void assertItemPermissions(Set<ItemPermission> itemPermissions) { for (ItemPermission itemPermission : itemPermissions) { Subject subject = itemPermission.getSubject(); switch (subject.getName()) { case "admin": assertPermissions(itemPermission, false, new Privilege[]{ADMIN, DEPLOY, ANNOTATE, DELETE, READ}, new Privilege[0]); break; case "anonymous": assertPermissions(itemPermission, false, new Privilege[]{READ}, new Privilege[]{DEPLOY}); break; case "readers": assertPermissions(itemPermission, true, new Privilege[]{READ}, new Privilege[]{DEPLOY}); break; } } }
@Test public void testCreateUser() throws Exception { UserBuilder userBuilder = artifactory.security().builders().userBuilder(); User user = userBuilder.name(USER_NAME).email("test@test.com").admin(false).profileUpdatable(true).password("test").build(); artifactory.security().createOrUpdate(user); String resp = curl(artifactory.security().getSecurityUsersApi().substring(1)); System.out.println(resp); assertTrue(resp.contains(USER_NAME)); }
@Test(dependsOnMethods = "testCreatePermissionTarget") public void testReplacePermissionTarget() { // WARN: This test is using default Artifactory users/groups PermissionTarget permissionTarget = artifactory.security().permissionTarget(PERMISSION_Target_NAME); assertNotNull(permissionTarget); Principal userAno = artifactory.security().builders().principalBuilder().name("anonymous").privileges(Privilege.READ, ANNOTATE).build(); Principals principals = artifactory.security().builders().principalsBuilder().users(userAno).build(); PermissionTargetBuilder permissionBuilder = artifactory.security().builders().permissionTargetBuilder(); PermissionTarget permission = permissionBuilder.name(PERMISSION_Target_NAME).repositories(getJCenterRepoName()).principals(principals).build(); try { artifactory.security().createOrReplacePermissionTarget(permission); } catch (Exception e) { if (e instanceof HttpResponseException) { throw new UnsupportedOperationException(((HttpResponseException) e).getMessage(), e); } throw new UnsupportedOperationException(e); } PermissionTarget permissionTargetRes = artifactory.security().permissionTarget(PERMISSION_Target_NAME); assertNotNull(permissionTargetRes); assertEquals(permissionTargetRes.getName(), PERMISSION_Target_NAME); assertEquals(getJCenterRepoName(), permissionTargetRes.getRepositories().get(0)); assertNotNull(permissionTargetRes.getPrincipals()); assertEquals(permissionTargetRes.getPrincipals().getUsers().get(0).getName(), "anonymous"); assertEquals(permissionTargetRes.getPrincipals().getUsers().get(0).getPrivileges(), userAno.getPrivileges()); assertEquals(permissionTargetRes.getPrincipals().getGroups().size(), 0); }
@Test(groups = "security") public void testEffectiveItemPermissions() throws Exception { InputStream inputStream = this.getClass().getResourceAsStream("/sample.txt"); Assert.assertNotNull(inputStream); File deployed = artifactory.repository(localRepository.getKey()).upload(PATH, inputStream).doUpload(); Assert.assertNotNull(deployed); Set<ItemPermission> itemPermissions = artifactory.repository(localRepository.getKey()).file(PATH).effectivePermissions(); assertItemPermissions(itemPermissions); }