Skip to content

Commit 253f6ab

Browse files
committed
Test get privileges
1 parent d434496 commit 253f6ab

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/security/authz/privilege/IndexPrivilegeTests.java

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.elasticsearch.action.index.TransportIndexAction;
1414
import org.elasticsearch.action.search.TransportSearchAction;
1515
import org.elasticsearch.action.update.TransportUpdateAction;
16+
import org.elasticsearch.cluster.metadata.DataStream;
1617
import org.elasticsearch.common.util.iterable.Iterables;
1718
import org.elasticsearch.test.ESTestCase;
1819
import org.elasticsearch.xpack.core.rollup.action.GetRollupIndexCapsAction;
@@ -69,6 +70,74 @@ public void testFindPrivilegesThatGrant() {
6970
assertThat(findPrivilegesThatGrant(RefreshAction.NAME), equalTo(List.of("maintenance", "manage", "all")));
7071
}
7172

73+
public void testGetSingleSelector() {
74+
{
75+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("all"));
76+
assertThat(actual, equalTo(IndexPrivilege.ALL));
77+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.ALL));
78+
}
79+
{
80+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("read"));
81+
assertThat(actual, equalTo(IndexPrivilege.READ));
82+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.DATA));
83+
}
84+
{
85+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("none"));
86+
assertThat(actual, equalTo(IndexPrivilege.NONE));
87+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.DATA));
88+
}
89+
{
90+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of());
91+
assertThat(actual, equalTo(IndexPrivilege.NONE));
92+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.DATA));
93+
}
94+
{
95+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("indices:data/read/search"));
96+
assertThat(actual.getSingleName(), equalTo("indices:data/read/search"));
97+
assertThat(actual.predicate.test("indices:data/read/search"), is(true));
98+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.DATA));
99+
}
100+
{
101+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("all", "read", "indices:data/read/search"));
102+
assertThat(actual.name, equalTo(Set.of("all", "read", "indices:data/read/search")));
103+
assertThat(Automatons.subsetOf(IndexPrivilege.ALL.automaton, actual.automaton), is(true));
104+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.ALL));
105+
}
106+
}
107+
108+
public void testGetSingleSelectorWithFailuresSelector() {
109+
assumeTrue("This test requires the failure store to be enabled", DataStream.isFailureStoreFeatureFlagEnabled());
110+
{
111+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("read_failure_store"));
112+
assertThat(actual, equalTo(IndexPrivilege.READ_FAILURE_STORE));
113+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.FAILURES));
114+
}
115+
{
116+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("all", "read_failure_store"));
117+
assertThat(actual.name(), equalTo(Set.of("all", "read_failure_store")));
118+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.ALL));
119+
assertThat(Automatons.subsetOf(IndexPrivilege.ALL.automaton, actual.automaton), is(true));
120+
}
121+
{
122+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("all", "indices:data/read/search", "read_failure_store"));
123+
assertThat(actual.name(), equalTo(Set.of("all", "indices:data/read/search", "read_failure_store")));
124+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.ALL));
125+
assertThat(Automatons.subsetOf(IndexPrivilege.ALL.automaton, actual.automaton), is(true));
126+
}
127+
{
128+
IndexPrivilege actual = IndexPrivilege.getSingleSelector(Set.of("all", "read", "read_failure_store"));
129+
assertThat(actual.name(), equalTo(Set.of("all", "read", "read_failure_store")));
130+
assertThat(actual.getSelectorPrivilege(), equalTo(IndexComponentSelectorPrivilege.ALL));
131+
assertThat(Automatons.subsetOf(IndexPrivilege.ALL.automaton, actual.automaton), is(true));
132+
}
133+
expectThrows(IllegalArgumentException.class, () -> IndexPrivilege.getSingleSelector(Set.of("read", "read_failure_store")));
134+
expectThrows(
135+
IllegalArgumentException.class,
136+
() -> IndexPrivilege.getSingleSelector(Set.of("indices:data/read/search", "read_failure_store"))
137+
);
138+
expectThrows(IllegalArgumentException.class, () -> IndexPrivilege.getSingleSelector(Set.of("none", "read_failure_store")));
139+
}
140+
72141
public void testPrivilegesForRollupFieldCapsAction() {
73142
final Collection<String> privileges = findPrivilegesThatGrant(GetRollupIndexCapsAction.NAME);
74143
assertThat(Set.copyOf(privileges), equalTo(Set.of("manage", "all", "view_index_metadata", "read")));

0 commit comments

Comments
 (0)