You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by am...@apache.org on 2023/04/05 07:12:24 UTC

[knox] branch master updated: KNOX-2894 - NPE when invalid composite provider name is given (#745)

This is an automated email from the ASF dual-hosted git repository.

amagyar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new e49444249 KNOX-2894 - NPE when invalid composite provider name is given (#745)
e49444249 is described below

commit e49444249bdc22afb8a1f717bf59dfaf8eefe67e
Author: Attila Magyar <m....@gmail.com>
AuthorDate: Wed Apr 5 09:12:18 2023 +0200

    KNOX-2894 - NPE when invalid composite provider name is given (#745)
---
 .../deploy/impl/CompositeAuthzDeploymentContributor.java      | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java b/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
index 6e7dd7b4d..434ab3243 100644
--- a/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
+++ b/gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java
@@ -19,7 +19,9 @@ package org.apache.knox.gateway.deploy.impl;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.knox.gateway.deploy.DeploymentContext;
+import org.apache.knox.gateway.deploy.DeploymentException;
 import org.apache.knox.gateway.deploy.DeploymentFactory;
+import org.apache.knox.gateway.deploy.ProviderDeploymentContributor;
 import org.apache.knox.gateway.deploy.ProviderDeploymentContributorBase;
 import org.apache.knox.gateway.descriptor.FilterParamDescriptor;
 import org.apache.knox.gateway.descriptor.ResourceDescriptor;
@@ -62,8 +64,13 @@ public class CompositeAuthzDeploymentContributor extends ProviderDeploymentContr
     List<String> names = parseProviderNames(providerNames);
     for (String name : names) {
       getProviderSpecificParams(resource, params, providerParams, name);
-      DeploymentFactory.getProviderContributor("authorization", name)
-              .contributeFilter(context, provider, service, resource, params);
+      ProviderDeploymentContributor contributor = DeploymentFactory.getProviderContributor("authorization", name);
+      if (contributor == null) {
+        throw new DeploymentException(
+                "Invalid composite provider name: " + name + " role: " + provider.getRole() +
+                        " provider: " + provider.getName() + " topology: " + context.getTopology().getName());
+      }
+      contributor.contributeFilter(context, provider, service, resource, params);
       params.clear();
       }
     }