This is an automated email from the ASF dual-hosted git repository.
pvillard31 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new c4ca6c985b6 NIFI-16256 Deprecated AbstractPolicyBasedAuthorizer for
removal (#11594)
c4ca6c985b6 is described below
commit c4ca6c985b6a066edb1536a31b620ca02cea779b
Author: David Handermann <[email protected]>
AuthorDate: Thu Aug 27 02:40:16 2026 -0500
NIFI-16256 Deprecated AbstractPolicyBasedAuthorizer for removal (#11594)
- Removed MockPolicyBasedAuthorizer and associated test classes
- Removed mock-authorizer module
---
nifi-code-coverage/pom.xml | 5 -
.../AbstractPolicyBasedAuthorizer.java | 3 +
.../authorization/MockPolicyBasedAuthorizer.java | 198 ------------
.../TestAbstractPolicyBasedAuthorizer.java | 332 ---------------------
.../nifi/authorization/TestAccessPolicy.java | 240 ---------------
.../org/apache/nifi/authorization/TestGroup.java | 170 -----------
.../org/apache/nifi/authorization/TestUser.java | 82 -----
.../nifi-framework/nifi-authorizer/pom.xml | 6 -
.../nifi/authorization/AuthorizerFactoryTest.java | 325 --------------------
.../nifi-framework-authorization/pom.xml | 8 -
.../resource/OperationAuthorizableTest.java | 226 --------------
.../nifi-framework/nifi-framework-core/pom.xml | 6 -
.../nifi-framework/nifi-mock-authorizer/pom.xml | 28 --
.../authorization/MockPolicyBasedAuthorizer.java | 211 -------------
nifi-framework-bundle/nifi-framework/pom.xml | 1 -
15 files changed, 3 insertions(+), 1838 deletions(-)
diff --git a/nifi-code-coverage/pom.xml b/nifi-code-coverage/pom.xml
index 9b83904b876..1be8e671e66 100644
--- a/nifi-code-coverage/pom.xml
+++ b/nifi-code-coverage/pom.xml
@@ -542,11 +542,6 @@
<artifactId>nifi-headless-server</artifactId>
<version>2.12.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock-authorizer</artifactId>
- <version>2.12.0-SNAPSHOT</version>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-nar-utils</artifactId>
diff --git
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
index 341c611dfff..0d6aebfaa7b 100644
---
a/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
+++
b/nifi-framework-api/src/main/java/org/apache/nifi/authorization/AbstractPolicyBasedAuthorizer.java
@@ -48,7 +48,10 @@ import javax.xml.stream.XMLStreamWriter;
/**
* An Authorizer that provides management of users, groups, and policies.
+ *
+ * @deprecated Deprecated under NIP-39 for removal and transition to
Controller-level authorization
*/
+@Deprecated(forRemoval = true, since = "2.12.0")
public abstract class AbstractPolicyBasedAuthorizer implements
ManagedAuthorizer {
private static final Logger logger =
LoggerFactory.getLogger(AbstractPolicyBasedAuthorizer.class);
private static final String DISALLOW_DOCTYPES =
"http://apache.org/xml/features/disallow-doctype-decl";
diff --git
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
b/nifi-framework-api/src/test/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
deleted file mode 100644
index 628a0459cde..00000000000
---
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.apache.nifi.authorization.exception.AuthorizationAccessException;
-import org.apache.nifi.authorization.exception.AuthorizerCreationException;
-import org.apache.nifi.authorization.exception.AuthorizerDestructionException;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Mock implementation of AbstractPolicyBasedAuthorizer.
- */
-public class MockPolicyBasedAuthorizer extends AbstractPolicyBasedAuthorizer {
-
- private final Set<Group> groups = new HashSet<>();
- private final Set<User> users = new HashSet<>();
- private final Set<AccessPolicy> policies = new HashSet<>();
-
- public MockPolicyBasedAuthorizer() {
-
- }
-
- public MockPolicyBasedAuthorizer(Set<Group> groups, Set<User> users,
Set<AccessPolicy> policies) {
- if (groups != null) {
- this.groups.addAll(groups);
- }
- if (users != null) {
- this.users.addAll(users);
- }
- if (policies != null) {
- this.policies.addAll(policies);
- }
- }
-
- @Override
- public Group doAddGroup(Group group) throws AuthorizationAccessException {
- groups.add(group);
- return group;
- }
-
- @Override
- public Group getGroup(String identifier) throws
AuthorizationAccessException {
- return groups.stream().filter(g ->
g.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public Group getGroupByName(String name) throws
AuthorizationAccessException {
- return groups.stream().filter(g ->
g.getName().equals(name)).findFirst().get();
- }
-
- @Override
- protected void purgePoliciesUsersAndGroups() {
-
- }
-
- @Override
- protected void backupPoliciesUsersAndGroups() {
-
- }
-
- @Override
- public Group doUpdateGroup(Group group) throws
AuthorizationAccessException {
- deleteGroup(group);
- return addGroup(group);
- }
-
- @Override
- public Group deleteGroup(Group group) throws AuthorizationAccessException {
- groups.remove(group);
- return group;
- }
-
- @Override
- public Set<Group> getGroups() throws AuthorizationAccessException {
- return groups;
- }
-
- @Override
- public User doAddUser(User user) throws AuthorizationAccessException {
- users.add(user);
- return user;
- }
-
- @Override
- public User getUser(String identifier) throws AuthorizationAccessException
{
- return users.stream().filter(u ->
u.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public User getUserByIdentity(String identity) throws
AuthorizationAccessException {
- return users.stream().filter(u ->
u.getIdentity().equals(identity)).findFirst().get();
- }
-
- @Override
- public User doUpdateUser(User user) throws AuthorizationAccessException {
- deleteUser(user);
- return addUser(user);
- }
-
- @Override
- public User deleteUser(User user) throws AuthorizationAccessException {
- users.remove(user);
- return user;
- }
-
- @Override
- public Set<User> getUsers() throws AuthorizationAccessException {
- return users;
- }
-
- @Override
- protected AccessPolicy doAddAccessPolicy(AccessPolicy accessPolicy) throws
AuthorizationAccessException {
- policies.add(accessPolicy);
- return accessPolicy;
- }
-
- @Override
- public AccessPolicy getAccessPolicy(String identifier) throws
AuthorizationAccessException {
- return policies.stream().filter(p ->
p.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public AccessPolicy updateAccessPolicy(AccessPolicy accessPolicy) throws
AuthorizationAccessException {
- deleteAccessPolicy(accessPolicy);
- return addAccessPolicy(accessPolicy);
- }
-
- @Override
- public AccessPolicy deleteAccessPolicy(AccessPolicy policy) throws
AuthorizationAccessException {
- policies.remove(policy);
- return policy;
- }
-
- @Override
- public Set<AccessPolicy> getAccessPolicies() throws
AuthorizationAccessException {
- return policies;
- }
-
- @Override
- public UsersAndAccessPolicies getUsersAndAccessPolicies() throws
AuthorizationAccessException {
- return new UsersAndAccessPolicies() {
- @Override
- public AccessPolicy getAccessPolicy(String resourceIdentifier,
RequestAction action) {
- return null;
- }
-
- @Override
- public User getUser(String identity) {
- return getUserByIdentity(identity);
- }
-
- @Override
- public Set<Group> getGroups(String userIdentity) {
- User user = getUserByIdentity(userIdentity);
- if (user == null) {
- return new HashSet<>();
- } else {
- return groups.stream()
- .filter(g ->
g.getUsers().contains(user.getIdentifier()))
- .collect(Collectors.toSet());
- }
- }
- };
- }
-
- @Override
- public void initialize(AuthorizerInitializationContext
initializationContext) throws AuthorizerCreationException {
-
- }
-
- @Override
- public void doOnConfigured(AuthorizerConfigurationContext
configurationContext) throws AuthorizerCreationException {
-
- }
-
- @Override
- public void preDestruction() throws AuthorizerDestructionException {
-
- }
-
-}
diff --git
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAbstractPolicyBasedAuthorizer.java
b/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAbstractPolicyBasedAuthorizer.java
deleted file mode 100644
index dd5f057589e..00000000000
---
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAbstractPolicyBasedAuthorizer.java
+++ /dev/null
@@ -1,332 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.mockito.Mockito.when;
-
-public class TestAbstractPolicyBasedAuthorizer {
-
- static final Resource TEST_RESOURCE = new Resource() {
- @Override
- public String getIdentifier() {
- return "1";
- }
-
- @Override
- public String getName() {
- return "resource1";
- }
-
- @Override
- public String getSafeDescription() {
- return "description1";
- }
- };
-
- @Test
- public void testApproveBasedOnUser() {
- AbstractPolicyBasedAuthorizer authorizer =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- UsersAndAccessPolicies usersAndAccessPolicies =
Mockito.spy(UsersAndAccessPolicies.class);
-
when(authorizer.getUsersAndAccessPolicies()).thenReturn(usersAndAccessPolicies);
-
- final String userIdentifier = "userIdentifier1";
- final String userIdentity = "userIdentity1";
-
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE.getIdentifier())
- .addUser(userIdentifier)
- .action(RequestAction.READ)
- .build();
-
-
when(usersAndAccessPolicies.getAccessPolicy(TEST_RESOURCE.getIdentifier(),
RequestAction.READ)).thenReturn(policy);
-
- final User user = new User.Builder()
- .identity(userIdentity)
- .identifier(userIdentifier)
- .build();
-
- when(usersAndAccessPolicies.getUser(userIdentity)).thenReturn(user);
-
- final AuthorizationRequest request = new AuthorizationRequest.Builder()
- .identity(userIdentity)
- .resource(TEST_RESOURCE)
- .action(RequestAction.READ)
- .accessAttempt(true)
- .anonymous(false)
- .build();
-
- assertEquals(AuthorizationResult.approved(),
authorizer.authorize(request));
- }
-
- @Test
- public void testApprovedBasedOnGroup() {
- AbstractPolicyBasedAuthorizer authorizer =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- UsersAndAccessPolicies usersAndAccessPolicies =
Mockito.spy(UsersAndAccessPolicies.class);
-
when(authorizer.getUsersAndAccessPolicies()).thenReturn(usersAndAccessPolicies);
-
- final String userIdentifier = "userIdentifier1";
- final String userIdentity = "userIdentity1";
- final String groupIdentifier = "groupIdentifier1";
-
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE.getIdentifier())
- .addGroup(groupIdentifier)
- .action(RequestAction.READ)
- .build();
-
-
when(usersAndAccessPolicies.getAccessPolicy(TEST_RESOURCE.getIdentifier(),
RequestAction.READ)).thenReturn(policy);
-
- final User user = new User.Builder()
- .identity(userIdentity)
- .identifier(userIdentifier)
- .build();
-
- when(usersAndAccessPolicies.getUser(userIdentity)).thenReturn(user);
-
- final Group group = new Group.Builder()
- .identifier(groupIdentifier)
- .name(groupIdentifier)
- .addUser(user.getIdentifier())
- .build();
-
-
when(usersAndAccessPolicies.getGroups(userIdentity)).thenReturn(Collections.singleton(group));
-
- final AuthorizationRequest request = new AuthorizationRequest.Builder()
- .identity(userIdentity)
- .resource(TEST_RESOURCE)
- .action(RequestAction.READ)
- .accessAttempt(true)
- .anonymous(false)
- .build();
-
- assertEquals(AuthorizationResult.approved(),
authorizer.authorize(request));
- }
-
- @Test
- public void testDeny() {
- AbstractPolicyBasedAuthorizer authorizer =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- UsersAndAccessPolicies usersAndAccessPolicies =
Mockito.spy(UsersAndAccessPolicies.class);
-
when(authorizer.getUsersAndAccessPolicies()).thenReturn(usersAndAccessPolicies);
-
- final String userIdentifier = "userIdentifier1";
- final String userIdentity = "userIdentity1";
-
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE.getIdentifier())
- .addUser("NOT_USER_1")
- .action(RequestAction.READ)
- .build();
-
-
when(usersAndAccessPolicies.getAccessPolicy(TEST_RESOURCE.getIdentifier(),
RequestAction.READ)).thenReturn(policy);
-
- final User user = new User.Builder()
- .identity(userIdentity)
- .identifier(userIdentifier)
- .build();
-
- when(usersAndAccessPolicies.getUser(userIdentity)).thenReturn(user);
-
- final AuthorizationRequest request = new AuthorizationRequest.Builder()
- .identity(userIdentity)
- .resource(TEST_RESOURCE)
- .action(RequestAction.READ)
- .accessAttempt(true)
- .anonymous(false)
- .build();
-
- assertEquals(AuthorizationResult.denied().getResult(),
authorizer.authorize(request).getResult());
- }
-
- @Test
- public void testResourceNotFound() {
- AbstractPolicyBasedAuthorizer authorizer =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- UsersAndAccessPolicies usersAndAccessPolicies =
Mockito.spy(UsersAndAccessPolicies.class);
-
when(authorizer.getUsersAndAccessPolicies()).thenReturn(usersAndAccessPolicies);
-
-
when(usersAndAccessPolicies.getAccessPolicy(TEST_RESOURCE.getIdentifier(),
RequestAction.READ)).thenReturn(null);
-
- final AuthorizationRequest request = new AuthorizationRequest.Builder()
- .identity("userIdentity")
- .resource(TEST_RESOURCE)
- .action(RequestAction.READ)
- .accessAttempt(true)
- .anonymous(false)
- .build();
-
- assertEquals(AuthorizationResult.resourceNotFound(),
authorizer.authorize(request));
- }
-
- @Test
- public void testGetFingerprint() {
- // create the users, groups, and policies
-
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
- User user2 = new
User.Builder().identifier("user-id-2").identity("user-2").build();
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("group-1").addUser(user1.getIdentifier()).build();
- Group group2 = new
Group.Builder().identifier("group-id-2").name("group-2").addUser(user2.getIdentifier()).build();
-
- AccessPolicy policy1 = new AccessPolicy.Builder()
- .identifier("policy-id-1")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .addUser(user2.getIdentifier())
- .build();
-
- AccessPolicy policy2 = new AccessPolicy.Builder()
- .identifier("policy-id-2")
- .resource("resource2")
- .action(RequestAction.READ)
- .addGroup(group1.getIdentifier())
- .addGroup(group2.getIdentifier())
- .addUser(user1.getIdentifier())
- .addUser(user2.getIdentifier())
- .build();
-
- // create the first Authorizer
-
- Set<Group> groups1 = new LinkedHashSet<>();
- groups1.add(group1);
- groups1.add(group2);
-
- Set<User> users1 = new LinkedHashSet<>();
- users1.add(user1);
- users1.add(user2);
-
- Set<AccessPolicy> policies1 = new LinkedHashSet<>();
- policies1.add(policy1);
- policies1.add(policy2);
-
- AbstractPolicyBasedAuthorizer authorizer1 =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- when(authorizer1.getGroups()).thenReturn(groups1);
- when(authorizer1.getUsers()).thenReturn(users1);
- when(authorizer1.getAccessPolicies()).thenReturn(policies1);
-
- // create the second Authorizer
-
- Set<Group> groups2 = new LinkedHashSet<>();
- groups2.add(group2);
- groups2.add(group1);
-
- Set<User> users2 = new LinkedHashSet<>();
- users2.add(user2);
- users2.add(user1);
-
- Set<AccessPolicy> policies2 = new LinkedHashSet<>();
- policies2.add(policy2);
- policies2.add(policy1);
-
- AbstractPolicyBasedAuthorizer authorizer2 =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- when(authorizer2.getGroups()).thenReturn(groups2);
- when(authorizer2.getUsers()).thenReturn(users2);
- when(authorizer2.getAccessPolicies()).thenReturn(policies2);
-
- // compare the fingerprints
- assertEquals(authorizer1.getFingerprint(),
authorizer2.getFingerprint());
- }
-
- @Test
- public void testInheritFingerprint() {
-
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
- User user2 = new
User.Builder().identifier("user-id-2").identity("user-2").build();
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("group-1").addUser(user1.getIdentifier()).build();
- Group group2 = new
Group.Builder().identifier("group-id-2").name("group-2").build();
-
- AccessPolicy policy1 = new AccessPolicy.Builder()
- .identifier("policy-id-1")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .addUser(user2.getIdentifier())
- .build();
-
- AccessPolicy policy2 = new AccessPolicy.Builder()
- .identifier("policy-id-2")
- .resource("resource2")
- .action(RequestAction.READ)
- .addGroup(group1.getIdentifier())
- .addGroup(group2.getIdentifier())
- .addUser(user1.getIdentifier())
- .addUser(user2.getIdentifier())
- .build();
-
- // create the first Authorizer
-
- Set<Group> groups1 = new LinkedHashSet<>();
- groups1.add(group1);
- groups1.add(group2);
-
- Set<User> users1 = new LinkedHashSet<>();
- users1.add(user1);
- users1.add(user2);
-
- Set<AccessPolicy> policies1 = new LinkedHashSet<>();
- policies1.add(policy1);
- policies1.add(policy2);
-
- AbstractPolicyBasedAuthorizer authorizer1 =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- when(authorizer1.getGroups()).thenReturn(groups1);
- when(authorizer1.getUsers()).thenReturn(users1);
- when(authorizer1.getAccessPolicies()).thenReturn(policies1);
-
- final String fingerprint1 = authorizer1.getFingerprint();
-
- // make a second authorizer using the memory-backed implementation so
we can inherit the fingerprint
- // and then compute a new fingerprint to compare them
- AbstractPolicyBasedAuthorizer authorizer2 = new
MockPolicyBasedAuthorizer();
- authorizer2.inheritFingerprint(fingerprint1);
-
- // computer the fingerprint of the second authorizer and it should be
the same as the first
- final String fingerprint2 = authorizer2.getFingerprint();
- assertEquals(fingerprint1, fingerprint2);
-
- // all the sets should be equal now after inheriting
- assertEquals(authorizer1.getUsers(), authorizer2.getUsers());
- assertEquals(authorizer1.getGroups(), authorizer2.getGroups());
- assertEquals(authorizer1.getAccessPolicies(),
authorizer2.getAccessPolicies());
- }
-
- @Test
- public void testEmptyAuthorizer() {
- AbstractPolicyBasedAuthorizer authorizer =
Mockito.spy(AbstractPolicyBasedAuthorizer.class);
- when(authorizer.getGroups()).thenReturn(new HashSet<>());
- when(authorizer.getUsers()).thenReturn(new HashSet<>());
- when(authorizer.getAccessPolicies()).thenReturn(new HashSet<>());
-
- final String fingerprint = authorizer.getFingerprint();
- assertNotNull(fingerprint);
- assertFalse(fingerprint.isEmpty());
- }
-
-}
diff --git
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAccessPolicy.java
b/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAccessPolicy.java
deleted file mode 100644
index fe3e84d8458..00000000000
---
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestAccessPolicy.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.junit.jupiter.api.Test;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TestAccessPolicy {
-
- static final String TEST_RESOURCE = "1";
-
- @Test
- public void testSimpleCreation() {
- final String identifier = "1";
- final String user1 = "user1";
- final String user2 = "user2";
- final RequestAction action = RequestAction.READ;
-
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier(identifier)
- .resource(TEST_RESOURCE)
- .addUser(user1)
- .addUser(user2)
- .action(action)
- .build();
-
- assertEquals(identifier, policy.getIdentifier());
-
- assertNotNull(policy.getResource());
- assertEquals(TEST_RESOURCE, policy.getResource());
-
- assertNotNull(policy.getUsers());
- assertEquals(2, policy.getUsers().size());
- assertTrue(policy.getUsers().contains(user1));
- assertTrue(policy.getUsers().contains(user2));
-
- assertNotNull(policy.getAction());
- assertEquals(RequestAction.READ, policy.getAction());
- }
-
- @Test
- public void testMissingIdentifier() {
- assertThrows(IllegalArgumentException.class, () -> new
AccessPolicy.Builder()
- .resource(TEST_RESOURCE)
- .addUser("user1")
- .action(RequestAction.READ)
- .build());
- }
-
- @Test
- public void testMissingResource() {
- assertThrows(IllegalArgumentException.class, () -> new
AccessPolicy.Builder()
- .identifier("1")
- .addUser("user1")
- .action(RequestAction.READ)
- .build());
- }
-
- @Test
- public void testMissingUsersAndGroups() {
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE)
- .action(RequestAction.READ)
- .build();
-
- assertNotNull(policy);
- }
-
- @Test
- public void testMissingActions() {
- assertThrows(IllegalArgumentException.class, () -> new
AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE)
- .addUser("user1")
- .build());
- }
-
- @Test
- public void testFromPolicy() {
- final String identifier = "1";
- final String user1 = "user1";
- final String user2 = "user2";
- final String group1 = "group1";
- final String group2 = "group2";
- final RequestAction action = RequestAction.READ;
-
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier(identifier)
- .resource(TEST_RESOURCE)
- .addUser(user1)
- .addUser(user2)
- .addGroup(group1)
- .addGroup(group2)
- .action(action)
- .build();
-
- assertEquals(identifier, policy.getIdentifier());
-
- assertNotNull(policy.getResource());
- assertEquals(TEST_RESOURCE, policy.getResource());
-
- assertNotNull(policy.getUsers());
- assertEquals(2, policy.getUsers().size());
- assertTrue(policy.getUsers().contains(user1));
- assertTrue(policy.getUsers().contains(user2));
-
- assertNotNull(policy.getGroups());
- assertEquals(2, policy.getGroups().size());
- assertTrue(policy.getGroups().contains(group1));
- assertTrue(policy.getGroups().contains(group2));
-
- assertNotNull(policy.getAction());
- assertEquals(RequestAction.READ, policy.getAction());
-
- final AccessPolicy policy2 = new AccessPolicy.Builder(policy).build();
- assertEquals(policy.getIdentifier(), policy2.getIdentifier());
- assertEquals(policy.getResource(), policy2.getResource());
- assertEquals(policy.getUsers(), policy2.getUsers());
- assertEquals(policy.getAction(), policy2.getAction());
- }
-
- @Test
- public void testFromPolicyAndChangeIdentifier() {
- final AccessPolicy policy = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE)
- .addUser("user1")
- .action(RequestAction.READ)
- .build();
-
- assertThrows(IllegalStateException.class, () -> new
AccessPolicy.Builder(policy).identifier("2").build());
- }
-
- @Test
- public void testAddRemoveClearUsers() {
- final AccessPolicy.Builder builder = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE)
- .addUser("user1")
- .action(RequestAction.READ);
-
- final AccessPolicy policy1 = builder.build();
- assertEquals(1, policy1.getUsers().size());
- assertTrue(policy1.getUsers().contains("user1"));
-
- final Set<String> moreEntities = new HashSet<>();
- moreEntities.add("user2");
- moreEntities.add("user3");
- moreEntities.add("user4");
-
- final AccessPolicy policy2 = builder.addUsers(moreEntities).build();
- assertEquals(4, policy2.getUsers().size());
- assertTrue(policy2.getUsers().contains("user1"));
- assertTrue(policy2.getUsers().contains("user2"));
- assertTrue(policy2.getUsers().contains("user3"));
- assertTrue(policy2.getUsers().contains("user4"));
-
- final AccessPolicy policy3 = builder.removeUser("user3").build();
- assertEquals(3, policy3.getUsers().size());
- assertTrue(policy3.getUsers().contains("user1"));
- assertTrue(policy3.getUsers().contains("user2"));
- assertTrue(policy3.getUsers().contains("user4"));
-
- final Set<String> removeEntities = new HashSet<>();
- removeEntities.add("user1");
- removeEntities.add("user4");
-
- final AccessPolicy policy4 =
builder.removeUsers(removeEntities).build();
- assertEquals(1, policy4.getUsers().size());
- assertTrue(policy4.getUsers().contains("user2"));
-
- final AccessPolicy policy5 = builder.clearUsers().build();
- assertEquals(0, policy5.getUsers().size());
- }
-
- @Test
- public void testAddRemoveClearGroups() {
- final AccessPolicy.Builder builder = new AccessPolicy.Builder()
- .identifier("1")
- .resource(TEST_RESOURCE)
- .addGroup("group1")
- .action(RequestAction.READ);
-
- final AccessPolicy policy1 = builder.build();
- assertEquals(1, policy1.getGroups().size());
- assertTrue(policy1.getGroups().contains("group1"));
-
- final Set<String> moreGroups = new HashSet<>();
- moreGroups.add("group2");
- moreGroups.add("group3");
- moreGroups.add("group4");
-
- final AccessPolicy policy2 = builder.addGroups(moreGroups).build();
- assertEquals(4, policy2.getGroups().size());
- assertTrue(policy2.getGroups().contains("group1"));
- assertTrue(policy2.getGroups().contains("group2"));
- assertTrue(policy2.getGroups().contains("group3"));
- assertTrue(policy2.getGroups().contains("group4"));
-
- final AccessPolicy policy3 = builder.removeGroup("group3").build();
- assertEquals(3, policy3.getGroups().size());
- assertTrue(policy3.getGroups().contains("group1"));
- assertTrue(policy3.getGroups().contains("group2"));
- assertTrue(policy3.getGroups().contains("group4"));
-
- final Set<String> removeGroups = new HashSet<>();
- removeGroups.add("group1");
- removeGroups.add("group4");
-
- final AccessPolicy policy4 =
builder.removeGroups(removeGroups).build();
- assertEquals(1, policy4.getGroups().size());
- assertTrue(policy4.getGroups().contains("group2"));
-
- final AccessPolicy policy5 = builder.clearGroups().build();
- assertEquals(0, policy5.getUsers().size());
- }
-
-}
diff --git
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestGroup.java
b/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestGroup.java
deleted file mode 100644
index 9e2311be6fb..00000000000
---
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestGroup.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.junit.jupiter.api.Test;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TestGroup {
-
- @Test
- public void testSimpleCreation() {
- final String id = "1";
- final String name = "group1";
- final String user1 = "user1";
- final String user2 = "user2";
-
- final Group group = new Group.Builder()
- .identifier(id)
- .name(name)
- .addUser(user1)
- .addUser(user2)
- .build();
-
- assertEquals(id, group.getIdentifier());
- assertEquals(name, group.getName());
-
- assertNotNull(group.getUsers());
- assertEquals(2, group.getUsers().size());
- assertTrue(group.getUsers().contains(user1));
- assertTrue(group.getUsers().contains(user2));
- }
-
- @Test
- public void testMissingId() {
- assertThrows(IllegalArgumentException.class, () -> new Group.Builder()
- .name("group1")
- .addUser("user1")
- .addUser("user2")
- .build());
- }
-
- @Test
- public void testMissingName() {
- assertThrows(IllegalArgumentException.class, () -> new Group.Builder()
- .identifier("1")
- .addUser("user1")
- .addUser("user2")
- .build());
- }
-
- @Test
- public void testMissingUsers() {
- final String id = "1";
- final String name = "group1";
-
- final Group group = new Group.Builder()
- .identifier(id)
- .name(name)
- .build();
-
- assertEquals(id, group.getIdentifier());
- assertEquals(name, group.getName());
-
- assertNotNull(group.getUsers());
- assertEquals(0, group.getUsers().size());
- }
-
- @Test
- public void testFromGroup() {
- final String id = "1";
- final String name = "group1";
- final String user1 = "user1";
- final String user2 = "user2";
-
- final Group group1 = new Group.Builder()
- .identifier(id)
- .name(name)
- .addUser(user1)
- .addUser(user2)
- .build();
-
- assertEquals(id, group1.getIdentifier());
- assertEquals(name, group1.getName());
-
- assertNotNull(group1.getUsers());
- assertEquals(2, group1.getUsers().size());
- assertTrue(group1.getUsers().contains(user1));
- assertTrue(group1.getUsers().contains(user2));
-
- final Group group2 = new Group.Builder(group1).build();
- assertEquals(group1.getIdentifier(), group2.getIdentifier());
- assertEquals(group1.getName(), group2.getName());
- assertEquals(group1.getUsers(), group2.getUsers());
- }
-
- @Test
- public void testFromGroupAndChangeIdentifier() {
- final Group group1 = new Group.Builder()
- .identifier("1")
- .name("group1")
- .addUser("user1")
- .build();
-
- assertThrows(IllegalStateException.class, () -> new
Group.Builder(group1).identifier("2").build());
- }
-
- @Test
- public void testAddRemoveClearUsers() {
- final Group.Builder builder = new Group.Builder()
- .identifier("1")
- .name("group1")
- .addUser("user1");
-
- final Group group1 = builder.build();
- assertNotNull(group1.getUsers());
- assertEquals(1, group1.getUsers().size());
- assertTrue(group1.getUsers().contains("user1"));
-
- final Set<String> moreUsers = new HashSet<>();
- moreUsers.add("user2");
- moreUsers.add("user3");
- moreUsers.add("user4");
-
- final Group group2 = builder.addUsers(moreUsers).build();
- assertEquals(4, group2.getUsers().size());
- assertTrue(group2.getUsers().contains("user1"));
- assertTrue(group2.getUsers().contains("user2"));
- assertTrue(group2.getUsers().contains("user3"));
- assertTrue(group2.getUsers().contains("user4"));
-
- final Group group3 = builder.removeUser("user2").build();
- assertEquals(3, group3.getUsers().size());
- assertTrue(group3.getUsers().contains("user1"));
- assertTrue(group3.getUsers().contains("user3"));
- assertTrue(group3.getUsers().contains("user4"));
-
- final Set<String> removeUsers = new HashSet<>();
- removeUsers.add("user1");
- removeUsers.add("user4");
-
- final Group group4 = builder.removeUsers(removeUsers).build();
- assertEquals(1, group4.getUsers().size());
- assertTrue(group4.getUsers().contains("user3"));
-
- final Group group5 = builder.clearUsers().build();
- assertEquals(0, group5.getUsers().size());
- }
-
-}
diff --git
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestUser.java
b/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestUser.java
deleted file mode 100644
index 9560ffffd15..00000000000
---
a/nifi-framework-api/src/test/java/org/apache/nifi/authorization/TestUser.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-public class TestUser {
-
- @Test
- public void testSimpleCreation() {
- final String identifier = "1";
- final String identity = "user1";
-
- final User user = new User.Builder()
- .identifier(identifier)
- .identity(identity)
- .build();
-
- assertEquals(identifier, user.getIdentifier());
- assertEquals(identity, user.getIdentity());
- }
-
- @Test
- public void testMissingIdentifier() {
- assertThrows(IllegalArgumentException.class, () -> new User.Builder()
- .identity("user1")
- .build());
- }
-
- @Test
- public void testMissingIdentity() {
- assertThrows(IllegalArgumentException.class, () -> new User.Builder()
- .identifier("1")
- .build());
- }
-
- @Test
- public void testFromUser() {
- final String identifier = "1";
- final String identity = "user1";
-
- final User user = new User.Builder()
- .identifier(identifier)
- .identity(identity)
- .build();
-
- assertEquals(identifier, user.getIdentifier());
- assertEquals(identity, user.getIdentity());
-
- final User user2 = new User.Builder(user).build();
- assertEquals(user.getIdentifier(), user2.getIdentifier());
- assertEquals(user.getIdentity(), user2.getIdentity());
- }
-
- @Test
- public void testFromUserAndChangeIdentifier() {
- final User user = new User.Builder()
- .identifier("1")
- .identity("user1")
- .build();
-
- assertThrows(IllegalStateException.class, () -> new
User.Builder(user).identifier("2").build());
- }
-
-}
diff --git a/nifi-framework-bundle/nifi-framework/nifi-authorizer/pom.xml
b/nifi-framework-bundle/nifi-framework/nifi-authorizer/pom.xml
index c6e75f85034..12eec0f52e5 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-authorizer/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/nifi-authorizer/pom.xml
@@ -87,12 +87,6 @@
<artifactId>nifi-nar-utils</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock-authorizer</artifactId>
- <version>2.12.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-python-framework-api</artifactId>
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-authorizer/src/test/java/org/apache/nifi/authorization/AuthorizerFactoryTest.java
b/nifi-framework-bundle/nifi-framework/nifi-authorizer/src/test/java/org/apache/nifi/authorization/AuthorizerFactoryTest.java
deleted file mode 100644
index 6c3d5355bf5..00000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-authorizer/src/test/java/org/apache/nifi/authorization/AuthorizerFactoryTest.java
+++ /dev/null
@@ -1,325 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.apache.nifi.authorization.AuthorizationResult.Result;
-import org.apache.nifi.authorization.exception.AuthorizerCreationException;
-import org.junit.jupiter.api.Test;
-import org.mockito.Mockito;
-
-import java.util.HashSet;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertInstanceOf;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class AuthorizerFactoryTest {
-
- @Test
- public void testOnConfiguredWhenPoliciesWithSameResourceAndAction() {
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
-
- AccessPolicy policy1 = new AccessPolicy.Builder()
- .identifier("policy-id-1")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .build();
-
- AccessPolicy policy2 = new AccessPolicy.Builder()
- .identifier("policy-id-2")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .build();
-
- Set<AccessPolicy> policies = new LinkedHashSet<>();
- policies.add(policy1);
- policies.add(policy2);
-
- Set<User> users = new LinkedHashSet<>();
- users.add(user1);
-
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
- Authorizer authorizer = AuthorizerFactory.installIntegrityChecks(new
MockPolicyBasedAuthorizer(new HashSet<>(), users, policies));
-
- assertThrows(AuthorizerCreationException.class, () ->
authorizer.onConfigured(context));
- }
-
- @Test
- public void testOnConfiguredWhenUsersWithSameIdentity() {
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
- User user2 = new
User.Builder().identifier("user-id-2").identity("user-1").build();
-
- Set<User> users = new LinkedHashSet<>();
- users.add(user1);
- users.add(user2);
-
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
- Authorizer authorizer = AuthorizerFactory.installIntegrityChecks(new
MockPolicyBasedAuthorizer(new HashSet<>(), users, new HashSet<>()));
-
- assertThrows(AuthorizerCreationException.class, () ->
authorizer.onConfigured(context));
- }
-
- @Test
- public void testOnConfiguredWhenGroupsWithSameName() {
- Group group1 = new
Group.Builder().identifier("group-id-1").name("group-1").build();
- Group group2 = new
Group.Builder().identifier("group-id-2").name("group-1").build();
-
- Set<Group> groups = new LinkedHashSet<>();
- groups.add(group1);
- groups.add(group2);
-
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
- Authorizer authorizer = AuthorizerFactory.installIntegrityChecks(new
MockPolicyBasedAuthorizer(groups, new HashSet<>(), new HashSet<>()));
-
- assertThrows(AuthorizerCreationException.class, () ->
authorizer.onConfigured(context));
- }
-
- @Test
- public void testAddPoliciesWithSameResourceAndAction() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
- userGroupProvider.addUser(user1);
-
- AccessPolicy policy1 = new AccessPolicy.Builder()
- .identifier("policy-id-1")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .build();
- accessPolicyProvider.addAccessPolicy(policy1);
-
- AccessPolicy policy2 = new AccessPolicy.Builder()
- .identifier("policy-id-2")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .build();
-
- assertThrows(IllegalStateException.class,
- () -> accessPolicyProvider.addAccessPolicy(policy2));
- }
-
- @Test
- public void testAddUsersWithSameIdentity() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
- userGroupProvider.addUser(user1);
-
- User user2 = new
User.Builder().identifier("user-id-2").identity("user-1").build();
-
- assertThrows(IllegalStateException.class,
- () -> userGroupProvider.addUser(user2));
- }
-
- @Test
- public void testAddGroupsWithSameName() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("group-1").build();
- userGroupProvider.addGroup(group1);
-
- Group group2 = new
Group.Builder().identifier("group-id-2").name("group-1").build();
-
- assertThrows(IllegalStateException.class,
- () -> userGroupProvider.addGroup(group2));
- }
-
- @Test
- public void testAddUsersWithSameIdentityAsGroupName() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("abc").build();
- userGroupProvider.addGroup(group1);
-
- User user = new
User.Builder().identifier("user-id-2").identity("abc").build();
- userGroupProvider.addUser(user);
- }
-
- @Test
- public void testAddGroupWithSameNameAsUserIdentity() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- User user = new
User.Builder().identifier("user-id-2").identity("abc").build();
- userGroupProvider.addUser(user);
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("abc").build();
- userGroupProvider.addGroup(group1);
- }
-
- @Test
- public void testUpdateUserWithSameIdentity() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- User user1 = new
User.Builder().identifier("user-id-1").identity("abc").build();
- userGroupProvider.addUser(user1);
-
- User user2 = new
User.Builder().identifier("user-id-2").identity("xyz").build();
- userGroupProvider.addUser(user2);
-
- User user1Updated = new
User.Builder().identifier("user-id-1").identity("xyz").build();
-
- assertThrows(IllegalStateException.class,
- () -> userGroupProvider.updateUser(user1Updated));
- }
-
- @Test
- public void testUpdateGroupWithSameName() {
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
-
- final ManagedAuthorizer managedAuthorizer = (ManagedAuthorizer)
AuthorizerFactory.installIntegrityChecks(new MockPolicyBasedAuthorizer());
- managedAuthorizer.onConfigured(context);
-
- final ConfigurableAccessPolicyProvider accessPolicyProvider =
(ConfigurableAccessPolicyProvider) managedAuthorizer.getAccessPolicyProvider();
- final ConfigurableUserGroupProvider userGroupProvider =
(ConfigurableUserGroupProvider) accessPolicyProvider.getUserGroupProvider();
-
- Group group1 = new
Group.Builder().identifier("group-id-1").name("abc").build();
- userGroupProvider.addGroup(group1);
-
- Group group2 = new
Group.Builder().identifier("group-id-2").name("xyz").build();
- userGroupProvider.addGroup(group2);
-
- Group group1Updated = new
Group.Builder().identifier("group-id-1").name("xyz").build();
-
- assertThrows(IllegalStateException.class,
- () -> userGroupProvider.updateGroup(group1Updated));
- }
-
- @Test
- public void testAuditInvoked() {
- User user1 = new
User.Builder().identifier("user-id-1").identity("user-1").build();
-
- AccessPolicy policy1 = new AccessPolicy.Builder()
- .identifier("policy-id-1")
- .resource("resource1")
- .action(RequestAction.READ)
- .addUser(user1.getIdentifier())
- .build();
-
- Set<AccessPolicy> policies = new LinkedHashSet<>();
- policies.add(policy1);
-
- Set<User> users = new LinkedHashSet<>();
- users.add(user1);
-
- final MockPolicyBasedAuthorizer mockAuthorizer = new
MockPolicyBasedAuthorizer(new HashSet<>(), users, policies);
-
- AuthorizerConfigurationContext context =
Mockito.mock(AuthorizerConfigurationContext.class);
- Authorizer authorizer =
AuthorizerFactory.installIntegrityChecks(mockAuthorizer);
- authorizer.onConfigured(context);
-
- assertInstanceOf(AuthorizationAuditor.class, authorizer);
-
- final AuthorizationRequest accessAttempt = new
AuthorizationRequest.Builder()
- .resource(new MockResource("resource1", "Resource 1"))
- .identity("user-1")
- .action(RequestAction.READ)
- .accessAttempt(true)
- .anonymous(false)
- .build();
-
- final AuthorizationResult accessAttemptResult =
authorizer.authorize(accessAttempt);
-
- assertEquals(Result.Approved, accessAttemptResult.getResult());
- assertTrue(mockAuthorizer.isAudited(accessAttempt));
-
- final AuthorizationRequest nonAccessAttempt = new
AuthorizationRequest.Builder()
- .resource(new MockResource("resource1", "Resource 1"))
- .identity("user-1")
- .accessAttempt(false)
- .action(RequestAction.READ)
- .anonymous(false)
- .build();
-
- final AuthorizationResult nonAccessAttempResult =
authorizer.authorize(nonAccessAttempt);
-
- assertEquals(Result.Approved, nonAccessAttempResult.getResult());
- assertFalse(mockAuthorizer.isAudited(nonAccessAttempt));
- }
-
- /**
- * Resource implementation for testing.
- */
- private static class MockResource implements Resource {
-
- private final String identifier;
- private final String name;
-
- public MockResource(String identifier, String name) {
- this.identifier = identifier;
- this.name = name;
- }
-
- @Override
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String getName() {
- return name;
- }
-
- @Override
- public String getSafeDescription() {
- return name;
- }
- }
-}
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/pom.xml
b/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/pom.xml
index 9509d0c5b0a..4be41255c78 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/pom.xml
@@ -23,17 +23,9 @@
<artifactId>nifi-framework-authorization</artifactId>
<dependencies>
-
-
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-framework-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock-authorizer</artifactId>
- <version>2.12.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/test/java/org/apache/nifi/authorization/resource/OperationAuthorizableTest.java
b/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/test/java/org/apache/nifi/authorization/resource/OperationAuthorizableTest.java
deleted file mode 100644
index a5c69f0cd99..00000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-framework-authorization/src/test/java/org/apache/nifi/authorization/resource/OperationAuthorizableTest.java
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization.resource;
-
-import org.apache.nifi.authorization.AccessDeniedException;
-import org.apache.nifi.authorization.AccessPolicy;
-import org.apache.nifi.authorization.MockPolicyBasedAuthorizer;
-import org.apache.nifi.authorization.Resource;
-import org.apache.nifi.authorization.User;
-import org.apache.nifi.authorization.user.StandardNiFiUser;
-import org.junit.jupiter.api.Test;
-
-import static org.apache.nifi.authorization.RequestAction.READ;
-import static org.apache.nifi.authorization.RequestAction.WRITE;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.fail;
-
-public class OperationAuthorizableTest {
-
- private static final User AUTH_USER = new User.Builder()
- .identity("user-a")
- .identifierGenerateRandom()
- .build();
- private static final StandardNiFiUser USER = new StandardNiFiUser.Builder()
- .identity(AUTH_USER.getIdentity())
- .build();
- private final MockProcessGroup rootProcessGroup = new
MockProcessGroup("root", null);
- private final MockProcessGroup processGroup1 = new
MockProcessGroup("pg-1", rootProcessGroup);
- private final Authorizable processor = new MockProcessor("component-1",
processGroup1);
-
- private class MockProcessGroup implements Authorizable {
- private final String identifier;
- private final MockProcessGroup parent;
-
- private MockProcessGroup(String identifier, MockProcessGroup parent) {
- this.identifier = identifier;
- this.parent = parent;
- }
-
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public Authorizable getParentAuthorizable() {
- return parent;
- }
-
- @Override
- public Resource getResource() {
- return
ResourceFactory.getComponentResource(ResourceType.ProcessGroup, identifier,
identifier);
- }
- }
-
- private class MockProcessor implements ComponentAuthorizable {
- private final String identifier;
- private final MockProcessGroup processGroup;
-
- private MockProcessor(String identifier, MockProcessGroup
processGroup) {
- this.identifier = identifier;
- this.processGroup = processGroup;
- }
-
- @Override
- public String getIdentifier() {
- return identifier;
- }
-
- @Override
- public String getProcessGroupIdentifier() {
- return processGroup.getIdentifier();
- }
-
- @Override
- public Authorizable getParentAuthorizable() {
- return processGroup;
- }
-
- @Override
- public Resource getResource() {
- return
ResourceFactory.getComponentResource(ResourceType.Processor, identifier,
identifier);
- }
- }
-
- private void shouldBeDenied(String message, Runnable test) {
- try {
- test.run();
- fail(message);
- } catch (AccessDeniedException e) {
- assertNotNull(e);
- }
- }
-
- @Test()
- public void testUnauthorizedRead() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
-
- // The user should not be able to access the component in any way.
- shouldBeDenied("Component WRITE should be denied",
- () -> processor.authorize(authorizer, WRITE, USER));
-
- shouldBeDenied("Component READ should be denied",
- () -> processor.authorize(authorizer, READ, USER));
-
- shouldBeDenied("Operation should be denied",
- () -> OperationAuthorizable.authorizeOperation(processor,
authorizer, USER));
- }
-
- @Test()
- public void testAuthorizedByComponentRead() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
- authorizer.addUser(AUTH_USER);
- authorizer.addAccessPolicy(new AccessPolicy.Builder()
- .identifierGenerateRandom()
- .addUser(AUTH_USER.getIdentifier())
- .resource("/processors/component-1")
- .action(READ)
- .build());
-
- processor.authorize(authorizer, READ, USER);
-
- // If the user has only READ access to the base component WRITE and
operation should be denied
- shouldBeDenied("Component WRITE should be denied",
- () -> processor.authorize(authorizer, WRITE, USER));
-
- shouldBeDenied("Operation WRITE should be denied",
- () -> OperationAuthorizable.authorizeOperation(processor,
authorizer, USER));
- }
-
- @Test()
- public void testAuthorizedByComponentWrite() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
- authorizer.addUser(AUTH_USER);
- authorizer.addAccessPolicy(new AccessPolicy.Builder()
- .identifierGenerateRandom()
- .addUser(AUTH_USER.getIdentifier())
- .resource("/processors/component-1")
- .action(WRITE)
- .build());
-
- // If the user has WRITE access to the base component, operation
access should be allowed, too
- processor.authorize(authorizer, WRITE, USER);
- OperationAuthorizable.authorizeOperation(processor, authorizer, USER);
-
- // But READ should be denied
- shouldBeDenied("Component READ should be denied",
- () -> processor.authorize(authorizer, READ, USER));
- }
-
- @Test()
- public void testAuthorizedByComponentParentWrite() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
- authorizer.addUser(AUTH_USER);
- authorizer.addAccessPolicy(new AccessPolicy.Builder()
- .identifierGenerateRandom()
- .addUser(AUTH_USER.getIdentifier())
- .resource("/process-groups/root")
- .action(WRITE)
- .build());
-
- // If the user has WRITE access to the base component, operation
access should be allowed, too
- processor.authorize(authorizer, WRITE, USER);
- OperationAuthorizable.authorizeOperation(processor, authorizer, USER);
-
- // But READ should be denied
- shouldBeDenied("Component READ should be denied",
- () -> processor.authorize(authorizer, READ, USER));
-
- }
-
- @Test()
- public void testAuthorizedByOperationWrite() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
- authorizer.addUser(AUTH_USER);
- authorizer.addAccessPolicy(new AccessPolicy.Builder()
- .identifierGenerateRandom()
- .addUser(AUTH_USER.getIdentifier())
- .resource("/operation/processors/component-1")
- .action(WRITE)
- .build());
-
- // Operation should be allowed, too.
- OperationAuthorizable.authorizeOperation(processor, authorizer, USER);
-
- // If the user only has the operation permissions, then component
access should be denied.
- shouldBeDenied("Component READ should be denied",
- () -> processor.authorize(authorizer, READ, USER));
- shouldBeDenied("Component WRITE should be denied",
- () -> processor.authorize(authorizer, WRITE, USER));
- }
-
- @Test()
- public void testAuthorizedByOperationParentWrite() {
- final MockPolicyBasedAuthorizer authorizer = new
MockPolicyBasedAuthorizer();
- authorizer.addUser(AUTH_USER);
- authorizer.addAccessPolicy(new AccessPolicy.Builder()
- .identifierGenerateRandom()
- .addUser(AUTH_USER.getIdentifier())
- .resource("/operation/process-groups/root")
- .action(WRITE)
- .build());
-
- // Operation should be allowed.
- OperationAuthorizable.authorizeOperation(processor, authorizer, USER);
-
- // If the user only has the operation permissions, then component
access should be denied.
- shouldBeDenied("Component READ should be denied",
- () -> processor.authorize(authorizer, READ, USER));
- shouldBeDenied("Component WRITE should be denied",
- () -> processor.authorize(authorizer, WRITE, USER));
- }
-}
diff --git a/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
b/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
index 6b7665cb01d..7aeefd09b88 100644
--- a/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/nifi-framework-core/pom.xml
@@ -262,12 +262,6 @@
<artifactId>nifi-security-ssl</artifactId>
<version>2.12.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock-authorizer</artifactId>
- <version>2.12.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-security-cert-builder</artifactId>
diff --git a/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/pom.xml
b/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/pom.xml
deleted file mode 100644
index 5082faa1d05..00000000000
--- a/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/pom.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Licensed to the Apache Software Foundation (ASF) under one or more
contributor
- license agreements. See the NOTICE file distributed with this work for
additional
- information regarding copyright ownership. The ASF licenses this file to
- You under the Apache License, Version 2.0 (the "License"); you may not use
- this file except in compliance with the License. You may obtain a copy of
- the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
- by applicable law or agreed to in writing, software distributed under the
- License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS
- OF ANY KIND, either express or implied. See the License for the specific
- language governing permissions and limitations under the License. -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <parent>
- <artifactId>nifi-framework</artifactId>
- <groupId>org.apache.nifi</groupId>
- <version>2.12.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
-
- <artifactId>nifi-mock-authorizer</artifactId>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-framework-api</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git
a/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/src/main/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
b/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/src/main/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
deleted file mode 100644
index 1710d4b5a18..00000000000
---
a/nifi-framework-bundle/nifi-framework/nifi-mock-authorizer/src/main/java/org/apache/nifi/authorization/MockPolicyBasedAuthorizer.java
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.authorization;
-
-import org.apache.nifi.authorization.exception.AuthorizationAccessException;
-import org.apache.nifi.authorization.exception.AuthorizerCreationException;
-import org.apache.nifi.authorization.exception.AuthorizerDestructionException;
-
-import java.util.HashSet;
-import java.util.Set;
-import java.util.stream.Collectors;
-
-/**
- * Mock implementation of AbstractPolicyBasedAuthorizer.
- */
-public class MockPolicyBasedAuthorizer extends AbstractPolicyBasedAuthorizer
implements AuthorizationAuditor {
-
- private final Set<Group> groups = new HashSet<>();
- private final Set<User> users = new HashSet<>();
- private final Set<AccessPolicy> policies = new HashSet<>();
-
- private final Set<AuthorizationRequest> audited = new HashSet<>();
-
- public MockPolicyBasedAuthorizer() {
-
- }
-
- public MockPolicyBasedAuthorizer(Set<Group> groups, Set<User> users,
Set<AccessPolicy> policies) {
- if (groups != null) {
- this.groups.addAll(groups);
- }
- if (users != null) {
- this.users.addAll(users);
- }
- if (policies != null) {
- this.policies.addAll(policies);
- }
- }
-
- @Override
- public Group doAddGroup(Group group) throws AuthorizationAccessException {
- groups.add(group);
- return group;
- }
-
- @Override
- public Group getGroup(String identifier) throws
AuthorizationAccessException {
- return groups.stream().filter(g ->
g.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public Group getGroupByName(String name) throws
AuthorizationAccessException {
- return groups.stream().filter(g ->
g.getName().equals(name)).findFirst().get();
- }
-
- @Override
- public Group doUpdateGroup(Group group) throws
AuthorizationAccessException {
- deleteGroup(group);
- return addGroup(group);
- }
-
- @Override
- public Group deleteGroup(Group group) throws AuthorizationAccessException {
- groups.remove(group);
- return group;
- }
-
- @Override
- public Set<Group> getGroups() throws AuthorizationAccessException {
- return groups;
- }
-
- @Override
- public User doAddUser(User user) throws AuthorizationAccessException {
- users.add(user);
- return user;
- }
-
- @Override
- public User getUser(String identifier) throws AuthorizationAccessException
{
- return users.stream().filter(u ->
u.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public User getUserByIdentity(String identity) throws
AuthorizationAccessException {
- return users.stream().filter(u ->
u.getIdentity().equals(identity)).findFirst().get();
- }
-
- @Override
- public User doUpdateUser(User user) throws AuthorizationAccessException {
- deleteUser(user);
- return addUser(user);
- }
-
- @Override
- public User deleteUser(User user) throws AuthorizationAccessException {
- users.remove(user);
- return user;
- }
-
- @Override
- public Set<User> getUsers() throws AuthorizationAccessException {
- return users;
- }
-
- @Override
- protected AccessPolicy doAddAccessPolicy(AccessPolicy accessPolicy) throws
AuthorizationAccessException {
- policies.add(accessPolicy);
- return accessPolicy;
- }
-
- @Override
- public AccessPolicy getAccessPolicy(String identifier) throws
AuthorizationAccessException {
- return policies.stream().filter(p ->
p.getIdentifier().equals(identifier)).findFirst().get();
- }
-
- @Override
- public AccessPolicy updateAccessPolicy(AccessPolicy accessPolicy) throws
AuthorizationAccessException {
- deleteAccessPolicy(accessPolicy);
- return addAccessPolicy(accessPolicy);
- }
-
- @Override
- public AccessPolicy deleteAccessPolicy(AccessPolicy policy) throws
AuthorizationAccessException {
- policies.remove(policy);
- return policy;
- }
-
- @Override
- public Set<AccessPolicy> getAccessPolicies() throws
AuthorizationAccessException {
- return policies;
- }
-
- @Override
- public UsersAndAccessPolicies getUsersAndAccessPolicies() throws
AuthorizationAccessException {
- return new UsersAndAccessPolicies() {
- @Override
- public AccessPolicy getAccessPolicy(String resourceIdentifier,
RequestAction action) {
- return policies.stream()
- .filter(policy ->
policy.getResource().equals(resourceIdentifier) &&
policy.getAction().equals(action))
- .findFirst().orElse(null);
- }
-
- @Override
- public User getUser(String identity) {
- return getUserByIdentity(identity);
- }
-
- @Override
- public Set<Group> getGroups(String userIdentity) {
- User user = getUserByIdentity(userIdentity);
- if (user == null) {
- return new HashSet<>();
- } else {
- return groups.stream()
- .filter(g ->
g.getUsers().contains(user.getIdentifier()))
- .collect(Collectors.toSet());
- }
- }
- };
- }
-
- @Override
- public void auditAccessAttempt(AuthorizationRequest request,
AuthorizationResult result) {
- audited.add(request);
- }
-
- public boolean isAudited(AuthorizationRequest request) {
- return audited.contains(request);
- }
-
- @Override
- public void initialize(AuthorizerInitializationContext
initializationContext) throws AuthorizerCreationException {
-
- }
-
- @Override
- public void doOnConfigured(AuthorizerConfigurationContext
configurationContext) throws AuthorizerCreationException {
-
- }
-
- @Override
- public void preDestruction() throws AuthorizerDestructionException {
-
- }
-
- @Override
- public void backupPoliciesUsersAndGroups() {
- }
-
- @Override
- public void purgePoliciesUsersAndGroups() {
- groups.clear();
- users.clear();
- policies.clear();
- }
-}
diff --git a/nifi-framework-bundle/nifi-framework/pom.xml
b/nifi-framework-bundle/nifi-framework/pom.xml
index 63c5e784d83..08d6368debd 100644
--- a/nifi-framework-bundle/nifi-framework/pom.xml
+++ b/nifi-framework-bundle/nifi-framework/pom.xml
@@ -49,7 +49,6 @@
<module>nifi-authorizer</module>
<module>nifi-properties-loader</module>
<module>nifi-standard-prioritizers</module>
- <module>nifi-mock-authorizer</module>
<module>nifi-headless-server</module>
</modules>
</project>