use of com.thinkbiganalytics.metadata.jpa.feed.security.JpaFeedOpsAclEntry in project kylo by Teradata.
the class FeedHealthRepositoryTest method findAll_WithMatchingGroupAclEntry.
@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin", "user" })
@Test
public void findAll_WithMatchingGroupAclEntry() throws Exception {
UUID uuid = UUID.randomUUID();
JpaOpsManagerFeedHealth health = new JpaOpsManagerFeedHealth();
health.setFeedId(new JpaOpsManagerFeedHealth.OpsManagerFeedHealthFeedId(uuid));
repo.save(health);
BaseFeed.FeedId healthId = new BaseFeed.FeedId(uuid);
JpaFeedOpsAclEntry nonMatching = new JpaFeedOpsAclEntry(healthId, "admin", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(nonMatching);
Iterable<JpaOpsManagerFeedHealth> all = repo.findAll();
Assert.assertTrue(StreamSupport.stream(all.spliterator(), false).anyMatch(it -> it.getFeedId().getUuid().equals(uuid)));
}
use of com.thinkbiganalytics.metadata.jpa.feed.security.JpaFeedOpsAclEntry in project kylo by Teradata.
the class JpaFeedProviderTest method testFindFeedUsingGenericFilter.
@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin" })
@Test
public void testFindFeedUsingGenericFilter() {
// Create feed
final String name = "testCategory.testFeed";
final String id = metadataAccess.commit(() -> {
final OpsManagerFeed.ID feedId = feedProvider.resolveId(UUID.randomUUID().toString());
feedProvider.save(feedId, name, false, 1000L);
return feedId.toString();
});
// Add ACL entries
final BaseFeed.FeedId feedId = new BaseFeed.FeedId(id);
final JpaFeedOpsAclEntry userAcl = new JpaFeedOpsAclEntry(feedId, "dladmin", JpaFeedOpsAclEntry.PrincipalType.USER);
final JpaFeedOpsAclEntry adminAcl = new JpaFeedOpsAclEntry(feedId, "admin", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclProvider.grantAccess(feedId, new UsernamePrincipal("dladmin"), new GroupPrincipal("admin"));
// Verify access to feeds
metadataAccess.read(() -> {
List<OpsManagerFeed> feeds = feedProvider.findAll("name:" + name);
Assert.assertTrue(feeds != null && !feeds.isEmpty());
List<String> feedNames = feedProvider.getFeedNames();
Assert.assertTrue(feedNames != null && !feedNames.isEmpty());
return feeds;
});
}
use of com.thinkbiganalytics.metadata.jpa.feed.security.JpaFeedOpsAclEntry in project kylo by Teradata.
the class OpsManagerFeedRepositoryTest method findAll_NoMatchingGroupMatchingUserAclEntry.
@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin", "user" })
@Test
public void findAll_NoMatchingGroupMatchingUserAclEntry() throws Exception {
JpaOpsManagerFeed feed = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed-name");
repo.save(feed);
BaseFeed.FeedId feedId = new BaseFeed.FeedId(feed.getId().getUuid());
JpaFeedOpsAclEntry dladminUserAcl = new JpaFeedOpsAclEntry(feedId, "dladmin", JpaFeedOpsAclEntry.PrincipalType.USER);
aclRepo.save(dladminUserAcl);
JpaFeedOpsAclEntry nonMatching = new JpaFeedOpsAclEntry(feedId, "NON_MATCHING", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(nonMatching);
Iterable<JpaOpsManagerFeed> all = repo.findAll();
Assert.assertTrue(StreamSupport.stream(all.spliterator(), false).allMatch(it -> it.getName().equals("feed-name")));
}
use of com.thinkbiganalytics.metadata.jpa.feed.security.JpaFeedOpsAclEntry in project kylo by Teradata.
the class OpsManagerFeedRepositoryTest method findAll_NoMatchingGroupAclEntry.
@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin", "user" })
@Test
public void findAll_NoMatchingGroupAclEntry() throws Exception {
JpaOpsManagerFeed feed = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed-name");
repo.save(feed);
BaseFeed.FeedId feedId = new BaseFeed.FeedId(feed.getId().getUuid());
JpaFeedOpsAclEntry nonMatching = new JpaFeedOpsAclEntry(feedId, "NON_MATCHING", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(nonMatching);
Iterable<JpaOpsManagerFeed> all = repo.findAll();
Assert.assertFalse(StreamSupport.stream(all.spliterator(), false).anyMatch(it -> it.getName().equals("feed-name")));
}
use of com.thinkbiganalytics.metadata.jpa.feed.security.JpaFeedOpsAclEntry in project kylo by Teradata.
the class OpsManagerFeedRepositoryTest method findAll_TwoPages.
@WithMockJaasUser(username = "dladmin", password = "secret", authorities = { "admin", "user" })
@Test
public void findAll_TwoPages() throws Exception {
JpaOpsManagerFeed feed1 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed1-name");
repo.save(feed1);
BaseFeed.FeedId feed1Id = new BaseFeed.FeedId(feed1.getId().getUuid());
JpaFeedOpsAclEntry acl1 = new JpaFeedOpsAclEntry(feed1Id, "admin", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl1);
JpaOpsManagerFeed feed2 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed2-name");
repo.save(feed2);
BaseFeed.FeedId feed2Id = new BaseFeed.FeedId(feed2.getId().getUuid());
JpaFeedOpsAclEntry acl2 = new JpaFeedOpsAclEntry(feed2Id, "user", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl2);
JpaOpsManagerFeed feed3 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed3-name");
repo.save(feed3);
BaseFeed.FeedId feed3Id = new BaseFeed.FeedId(feed3.getId().getUuid());
JpaFeedOpsAclEntry acl3 = new JpaFeedOpsAclEntry(feed3Id, "NON_MATCHING", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl3);
JpaOpsManagerFeed feed4 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed4-name");
repo.save(feed4);
BaseFeed.FeedId feed4Id = new BaseFeed.FeedId(feed4.getId().getUuid());
JpaFeedOpsAclEntry acl4 = new JpaFeedOpsAclEntry(feed4Id, "user", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl4);
JpaOpsManagerFeed feed5 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed5-name");
repo.save(feed5);
BaseFeed.FeedId feed5Id = new BaseFeed.FeedId(feed5.getId().getUuid());
JpaFeedOpsAclEntry acl5 = new JpaFeedOpsAclEntry(feed5Id, "NON_MATCHING", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl5);
JpaOpsManagerFeed feed6 = new JpaOpsManagerFeed(OpsManagerFeedId.create(), "feed6-name");
repo.save(feed6);
BaseFeed.FeedId feed6Id = new BaseFeed.FeedId(feed6.getId().getUuid());
JpaFeedOpsAclEntry acl6 = new JpaFeedOpsAclEntry(feed6Id, "user", JpaFeedOpsAclEntry.PrincipalType.GROUP);
aclRepo.save(acl6);
Pageable page1Request = new PageRequest(0, 2);
Page<JpaOpsManagerFeed> page1 = repo.findAll(page1Request);
Assert.assertEquals(0, page1.getNumber());
Assert.assertEquals(2, page1.getNumberOfElements());
Assert.assertEquals(2, page1.getTotalPages());
Assert.assertEquals(4, page1.getTotalElements());
Pageable page2Request = new PageRequest(1, 2);
Page<JpaOpsManagerFeed> page2 = repo.findAll(page2Request);
Assert.assertEquals(1, page2.getNumber());
Assert.assertEquals(2, page2.getNumberOfElements());
Assert.assertEquals(2, page2.getTotalPages());
Assert.assertEquals(4, page2.getTotalElements());
}
Aggregations