[
https://issues.apache.org/jira/browse/KNOX-2762?focusedWorklogId=783512&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-783512
]
ASF GitHub Bot logged work on KNOX-2762:
----------------------------------------
Author: ASF GitHub Bot
Created on: 21/Jun/22 18:34
Start Date: 21/Jun/22 18:34
Worklog Time Spent: 10m
Work Description: smolnar82 commented on code in PR #597:
URL: https://github.com/apache/knox/pull/597#discussion_r902941720
##########
gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java:
##########
@@ -57,22 +59,23 @@ public void contributeFilter( DeploymentContext context,
Provider provider, Serv
Map<String, String> providerParams = provider.getParams();
String providerNames = providerParams.get("composite.provider.names");
if (!providerNames.isEmpty()) {
- String[] names = parseProviderNames(providerNames);
- for (String name : names) {
- getProviderSpecificParams(resource, params, providerParams, name);
- DeploymentFactory.getProviderContributor("authorization", name)
- .contributeFilter(context, provider, service, resource, params);
- params.clear();
- }
+ List<String> names = parseProviderNames(providerNames);
+ for (String name : names) {
+ getProviderSpecificParams(resource, params, providerParams, name);
+ DeploymentFactory.getProviderContributor("authorization", name)
+ .contributeFilter(context, provider, service, resource,
params);
+ params.clear();
+ }
}
}
- String[] parseProviderNames(String providerNames) {
- String[] b = providerNames.split("\\s*,\\s*");
- for (int i = 0; i < b.length; i++) {
- b[i] = b[i].trim();
+ List parseProviderNames(String providerNames) {
+ if (providerNames==null){
Review Comment:
nit: formatting
##########
gateway-provider-security-authz-composite/src/main/java/org/apache/knox/gateway/deploy/impl/CompositeAuthzDeploymentContributor.java:
##########
@@ -57,22 +59,23 @@ public void contributeFilter( DeploymentContext context,
Provider provider, Serv
Map<String, String> providerParams = provider.getParams();
String providerNames = providerParams.get("composite.provider.names");
if (!providerNames.isEmpty()) {
- String[] names = parseProviderNames(providerNames);
- for (String name : names) {
- getProviderSpecificParams(resource, params, providerParams, name);
- DeploymentFactory.getProviderContributor("authorization", name)
- .contributeFilter(context, provider, service, resource, params);
- params.clear();
- }
+ List<String> names = parseProviderNames(providerNames);
+ for (String name : names) {
+ getProviderSpecificParams(resource, params, providerParams, name);
+ DeploymentFactory.getProviderContributor("authorization", name)
+ .contributeFilter(context, provider, service, resource,
params);
+ params.clear();
+ }
}
}
- String[] parseProviderNames(String providerNames) {
- String[] b = providerNames.split("\\s*,\\s*");
- for (int i = 0; i < b.length; i++) {
- b[i] = b[i].trim();
+ List parseProviderNames(String providerNames) {
+ if (providerNames==null){
+ return Collections.singletonList("");
}
- return b;
+ List<String> providerNamesList =
Arrays.asList(providerNames.split("\\s*,\\s*"));
+ providerNamesList.replaceAll(String::trim);
Review Comment:
Cool; I like this change.
Issue Time Tracking
-------------------
Worklog Id: (was: 783512)
Time Spent: 2h 10m (was: 2h)
> Whitespaces around delimiters in composite provider names gives
> NullPointerException
> ------------------------------------------------------------------------------------
>
> Key: KNOX-2762
> URL: https://issues.apache.org/jira/browse/KNOX-2762
> Project: Apache Knox
> Issue Type: Bug
> Components: Server
> Affects Versions: 1.6.0
> Reporter: Harshil Jhaveri
> Assignee: Harshil Jhaveri
> Priority: Minor
> Fix For: 2.0.0
>
> Attachments: NPE gateway log.png
>
> Time Spent: 2h 10m
> Remaining Estimate: 0h
>
> When giving space before the delimiter for composite.provider.names in
> composite authorisation provider. The topology deployment is failing and
> returning a null pointer exception.
> The topology state:
> {code:java}
> <provider>
> <role>authorization</role>
> <name>CompositeAuthz</name>
> <enabled>true</enabled>
> <param>
> <name>composite.provider.names</name>
> <value>AclsAuthz ,XASecurePDPKnox</value>
> </param>
> <param>
> <name>AclsAuthz.ranger.acl</name>
> <value>*;;</value> </param></provider>
> </provider>{code}
> {color:#e8bf6a}CC:{color} [~pzampino] [~smore] [~smolnar]
--
This message was sent by Atlassian Jira
(v8.20.7#820007)