Skip to content

Commit 161639b

Browse files
committed
Add generic way to define sensitive url params on http authenticator
Signed-off-by: Craig Perkins <cwperx@amazon.com>
1 parent 638599f commit 161639b

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

src/main/java/com/amazon/dlic/auth/http/jwt/HTTPJwtAuthenticator.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@
1515
import java.security.AccessController;
1616
import java.security.PrivilegedAction;
1717
import java.util.Collection;
18+
import java.util.Collections;
1819
import java.util.Map;
1920
import java.util.Map.Entry;
2021
import java.util.Optional;
22+
import java.util.Set;
2123
import java.util.regex.Pattern;
2224

2325
import org.apache.http.HttpStatus;
@@ -194,8 +196,12 @@ public Optional<SecurityResponse> reRequestAuthentication(final SecurityRequest
194196
);
195197
}
196198

197-
public String getJwtUrlParameter() {
198-
return jwtUrlParameter;
199+
@Override
200+
public Set<String> getSensitiveUrlParams() {
201+
if (jwtUrlParameter != null) {
202+
return Set.of(jwtUrlParameter);
203+
}
204+
return Collections.emptySet();
199205
}
200206

201207
@Override

src/main/java/org/opensearch/security/auditlog/impl/AbstractAuditLog.java

+1-7
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
import org.opensearch.threadpool.ThreadPool;
7979
import org.opensearch.transport.TransportRequest;
8080

81-
import com.amazon.dlic.auth.http.jwt.HTTPJwtAuthenticator;
8281
import com.flipkart.zjsonpatch.JsonDiff;
8382
import org.greenrobot.eventbus.Subscribe;
8483

@@ -946,12 +945,7 @@ public void onDynamicConfigModelChanged(DynamicConfigModel dcm) {
946945
SortedSet<AuthDomain> authDomains = Collections.unmodifiableSortedSet(dcm.getRestAuthDomains());
947946
ignoredUrlParams.clear();
948947
for (AuthDomain authDomain : authDomains) {
949-
if ("jwt".equals(authDomain.getHttpAuthenticator().getType())) {
950-
HTTPJwtAuthenticator jwtAuthenticator = (HTTPJwtAuthenticator) authDomain.getHttpAuthenticator();
951-
if (jwtAuthenticator.getJwtUrlParameter() != null) {
952-
ignoredUrlParams.add(jwtAuthenticator.getJwtUrlParameter());
953-
}
954-
}
948+
ignoredUrlParams.addAll(authDomain.getHttpAuthenticator().getSensitiveUrlParams());
955949
}
956950
}
957951
}

src/main/java/org/opensearch/security/auth/HTTPAuthenticator.java

+12
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@
2626

2727
package org.opensearch.security.auth;
2828

29+
import java.util.Collections;
2930
import java.util.Optional;
31+
import java.util.Set;
3032

3133
import org.opensearch.OpenSearchSecurityException;
3234
import org.opensearch.common.util.concurrent.ThreadContext;
@@ -92,4 +94,14 @@ public interface HTTPAuthenticator {
9294
default boolean supportsImpersonation() {
9395
return true;
9496
}
97+
98+
/**
99+
* Returns a set of URL parameters this authenticator supports that are considered sensitive
100+
* and should be redacted in the audit logs
101+
*
102+
* @return The set of URL parameters considered sensitive for this authenticator.
103+
*/
104+
default Set<String> getSensitiveUrlParams() {
105+
return Collections.emptySet();
106+
}
95107
}

0 commit comments

Comments
 (0)