Define constants in WellKnownAuthParameters (#116)

Fixes #111
This commit is contained in:
Alexander Preuß
2022-09-21 17:07:15 +02:00
committed by GitHub
parent 10ef7000a9
commit e12e6c969a
2 changed files with 67 additions and 43 deletions

View File

@@ -43,8 +43,8 @@ final class AuthParameterUtils {
}
private static Map<String, String> convertWellKnownLowerCaseKeysToCamelCase(Map<String, String> params) {
return params.entrySet().stream().collect(Collectors
.toMap(entry -> WellKnownAuthParameters.getCamelCaseKey(entry.getKey()), Map.Entry::getValue));
return params.entrySet().stream().collect(
Collectors.toMap(entry -> WellKnownAuthParameters.toCamelCaseKey(entry.getKey()), Map.Entry::getValue));
}
private static Map<String, String> convertKebabCaseKeysToCamelCase(Map<String, String> params) {

View File

@@ -16,56 +16,80 @@
package org.springframework.pulsar.autoconfigure;
import java.util.HashMap;
import java.util.Arrays;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* Utility class to map Pulsar auth parameters to well-known keys.
*
* @author Alexander Preuß
*/
public final class WellKnownAuthParameters {
enum WellKnownAuthParameters {
private static final Map<String, String> lowerCaseToCamelCase = new HashMap<>();
TENANT_DOMAIN("tenantDomain"),
static {
// Athenz
lowerCaseToCamelCase.put("tenantdomain", "tenantDomain");
lowerCaseToCamelCase.put("tenantservice", "tenantService");
lowerCaseToCamelCase.put("providerdomain", "providerDomain");
lowerCaseToCamelCase.put("privatekey", "privateKey");
lowerCaseToCamelCase.put("privatekeypath", "privateKeyPath");
lowerCaseToCamelCase.put("keyid", "keyId");
lowerCaseToCamelCase.put("autoprefetchenabled", "autoPrefetchEnabled");
lowerCaseToCamelCase.put("athenzconfpath", "athenzConfPath");
lowerCaseToCamelCase.put("principalheader", "principalHeader");
lowerCaseToCamelCase.put("roleheader", "roleHeader");
lowerCaseToCamelCase.put("ztsurl", "ztsUrl");
// Basic
lowerCaseToCamelCase.put("userid", "userId");
lowerCaseToCamelCase.put("password", "password");
// KeyStoreTls
lowerCaseToCamelCase.put("keystoretype", "keyStoreType");
lowerCaseToCamelCase.put("keystorepath", "keyStorePath");
lowerCaseToCamelCase.put("keystorepassword", "keyStorePassword");
// OAuth2
lowerCaseToCamelCase.put("type", "type");
lowerCaseToCamelCase.put("issuerurl", "issuerUrl");
lowerCaseToCamelCase.put("privatekey", "privateKey");
lowerCaseToCamelCase.put("audience", "audience");
lowerCaseToCamelCase.put("scope", "scope");
// Sasl
lowerCaseToCamelCase.put("sasljaasclientsectionname", "saslJaasClientSectionName");
lowerCaseToCamelCase.put("servertype", "serverType");
// Tls
lowerCaseToCamelCase.put("tlscertfile", "tlsCertFile");
lowerCaseToCamelCase.put("tlskeyfile", "tlsKeyFile");
// Token
lowerCaseToCamelCase.put("token", "token");
TENANT_SERVICE("tenantService"),
PROVIDER_DOMAIN("providerDomain"),
PRIVATE_KEY("privateKey"),
PRIVATE_KEY_PATH("privateKeyPath"),
KEY_ID("keyId"),
AUTO_PREFETCH_ENABLED("autoPrefetchEnabled"),
ATHENZ_CONF_PATH("athenzConfPath"),
PRINCIPAL_HEADER("principalHeader"),
ROLE_HEADER("roleHeader"),
ZTS_URL("ztsUrl"),
USER_ID("userId"),
PASSWORD("password"),
KEY_STORE_TYPE("keyStoreType"),
KEY_STORE_PATH("keyStorePath"),
KEY_STORE_PASSWORD("keyStorePassword"),
TYPE("type"),
ISSUER_URL("issuerUrl"),
AUDIENCE("audience"),
SCOPE("scope"),
SASL_JAAS_CLIENT_SECTION_NAME("saslJaasClientSectionName"),
SERVER_TYPE("serverType"),
TLS_CERT_FILE("tlsCertFile"),
TLS_KEY_FILE("tlsKeyFile"),
TOKEN("token");
private static final Map<String, String> LOWER_CASE_TO_CAMEL_CASE = Arrays.stream(values())
.map(WellKnownAuthParameters::getCamelCaseKey)
.collect(Collectors.toMap(String::toLowerCase, Function.identity()));
private final String camelCaseKey;
WellKnownAuthParameters(String camelCaseKey) {
this.camelCaseKey = camelCaseKey;
}
private WellKnownAuthParameters() {
String getCamelCaseKey() {
return this.camelCaseKey;
}
/**
@@ -75,8 +99,8 @@ public final class WellKnownAuthParameters {
* @return the camel-cased auth parameter, or the lowerCaseKey if the parameter is not
* found.
*/
public static String getCamelCaseKey(String lowerCaseKey) {
return lowerCaseToCamelCase.getOrDefault(lowerCaseKey, lowerCaseKey);
public static String toCamelCaseKey(String lowerCaseKey) {
return LOWER_CASE_TO_CAMEL_CASE.getOrDefault(lowerCaseKey, lowerCaseKey);
}
}