You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by sm...@apache.org on 2022/09/22 07:58:11 UTC
[knox] branch master updated: KNOX-2805 - getUserTokens honours different metadata values with the same name (#633)
This is an automated email from the ASF dual-hosted git repository.
smolnar 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 14f57546c KNOX-2805 - getUserTokens honours different metadata values with the same name (#633)
14f57546c is described below
commit 14f57546c12912d99c33da574ef387b2b501138d
Author: Sandor Molnar <sm...@apache.org>
AuthorDate: Thu Sep 22 09:58:04 2022 +0200
KNOX-2805 - getUserTokens honours different metadata values with the same name (#633)
---
.../apache/knox/gateway/service/knoxtoken/TokenResource.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java
index 0bcf622b7..42f25bc32 100644
--- a/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java
+++ b/gateway-service-knoxtoken/src/main/java/org/apache/knox/gateway/service/knoxtoken/TokenResource.java
@@ -458,11 +458,11 @@ public class TokenResource {
if (uriInfo == null) {
throw new IllegalArgumentException("URI info cannot be NULL.");
}
- final Map<String, String> metadataMap = new HashMap<>();
+ final Map<String, List<String>> metadataMap = new HashMap<>();
uriInfo.getQueryParameters().entrySet().forEach(entry -> {
if (entry.getKey().startsWith(METADATA_QUERY_PARAM_PREFIX)) {
String metadataName = entry.getKey().substring(METADATA_QUERY_PARAM_PREFIX.length());
- metadataMap.put(metadataName, entry.getValue().get(0));
+ metadataMap.put(metadataName, entry.getValue());
}
});
@@ -474,15 +474,15 @@ public class TokenResource {
tokens.addAll(userTokens);
} else {
userTokens.forEach(knoxToken -> {
- for (Map.Entry<String, String> entry : metadataMap.entrySet()) {
- if (StringUtils.isBlank(entry.getValue()) || "*".equals(entry.getValue())) {
+ for (Map.Entry<String, List<String>> entry : metadataMap.entrySet()) {
+ if (entry.getValue().contains("*")) {
// we should only filter tokens by metadata name
if (knoxToken.hasMetadata(entry.getKey())) {
tokens.add(knoxToken);
}
} else {
// metadata value should also match
- if (entry.getValue().equals(knoxToken.getMetadataValue(entry.getKey()))) {
+ if (entry.getValue().contains(knoxToken.getMetadataValue(entry.getKey()))) {
tokens.add(knoxToken);
}
}