private void parseEnvironmentVariable()

in streampipes-commons/src/main/java/org/apache/streampipes/commons/environment/parser/OAuthConfigurationParser.java [71:108]


  private void parseEnvironmentVariable(
      String key,
      String value,
      Map<String, OAuthConfiguration> oAuthConfigurationsMap
  ) {
    var parts = getParts(key);
    if (parts.length >= 5) {
      // containst the identifier of the provider (e.g. azure, github, ...)
      var registrationId = getRegistrationId(parts);
      var settingName = getSettingName(parts);

      var oAuthConfiguration = getOrCreateOAuthConfiguration(oAuthConfigurationsMap, registrationId);
      oAuthConfiguration.setRegistrationId(registrationId);

      switch (settingName) {
        case "AUTHORIZATION_URI" -> oAuthConfiguration.setAuthorizationUri(value);
        case "CLIENT_NAME" -> oAuthConfiguration.setClientName(value);
        case "CLIENT_ID" -> oAuthConfiguration.setClientId(value);
        case "CLIENT_SECRET" -> oAuthConfiguration.setClientSecret(value);
        case "FULL_NAME_ATTRIBUTE_NAME" -> oAuthConfiguration.setFullNameAttributeName(value);
        case "ISSUER_URI" -> oAuthConfiguration.setIssuerUri(value);
        case "JWK_SET_URI" -> oAuthConfiguration.setJwkSetUri(value);
        case "SCOPES" -> oAuthConfiguration.setScopes(value.split(","));
        case "TOKEN_URI" -> oAuthConfiguration.setTokenUri(value);
        case "USER_INFO_URI" -> oAuthConfiguration.setUserInfoUri(value);
        case "EMAIL_ATTRIBUTE_NAME" -> oAuthConfiguration.setEmailAttributeName(value);
        case "USER_ID_ATTRIBUTE_NAME" -> oAuthConfiguration.setUserIdAttributeName(value);
        case "NAME" -> oAuthConfiguration.setRegistrationName(value);
        default -> LOG.warn(
            "Unknown setting {} for oauth configuration in environment variable {}",
            settingName,
            key
        );
      }
    } else {
      LOG.warn("Invalid environment variable for oauth configuration: {}", key);
    }
  }