All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.datastrato.gravitino.server.web.ConfigServlet Maven / Gradle / Ivy

/*
 * Copyright 2023 Datastrato Pvt Ltd.
 * This software is licensed under the Apache License version 2.
 */
package com.datastrato.gravitino.server.web;

import com.datastrato.gravitino.Configs;
import com.datastrato.gravitino.auth.AuthenticatorType;
import com.datastrato.gravitino.config.ConfigEntry;
import com.datastrato.gravitino.json.JsonUtils;
import com.datastrato.gravitino.server.ServerConfig;
import com.datastrato.gravitino.server.auth.OAuthConfig;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Maps;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ConfigServlet extends HttpServlet {

  private static final ImmutableSet> oauthConfigEntries =
      ImmutableSet.of(OAuthConfig.DEFAULT_SERVER_URI, OAuthConfig.DEFAULT_TOKEN_PATH);

  private static final ImmutableSet> basicConfigEntries =
      ImmutableSet.of(Configs.AUTHENTICATOR);

  private final Map configs = Maps.newHashMap();

  public ConfigServlet(ServerConfig serverConfig) {
    for (ConfigEntry key : basicConfigEntries) {
      String config = String.valueOf(serverConfig.get(key));
      configs.put(key.getKey(), config);
    }
    if (serverConfig.get(Configs.AUTHENTICATOR).equalsIgnoreCase(AuthenticatorType.OAUTH.name())) {
      for (ConfigEntry key : oauthConfigEntries) {
        String config = String.valueOf(serverConfig.get(key));
        configs.put(key.getKey(), config);
      }
    }
  }

  protected void doGet(HttpServletRequest req, HttpServletResponse res)
      throws ServletException, IOException {
    try (PrintWriter writer = res.getWriter()) {
      ObjectMapper objectMapper = JsonUtils.objectMapper();
      res.setContentType("application/json;charset=utf-8");
      writer.write(objectMapper.writeValueAsString(configs));
    }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy