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

io.trino.gateway.ha.security.AuthorizationManager Maven / Gradle / Ivy

package io.trino.gateway.ha.security;

import io.trino.gateway.ha.config.AuthorizationConfiguration;
import io.trino.gateway.ha.config.LdapConfiguration;
import io.trino.gateway.ha.config.UserConfiguration;

import java.util.Map;
import java.util.Optional;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class AuthorizationManager {
  private final AuthorizationConfiguration configuration;
  private final Map presetUsers;
  private final LbLdapClient lbLdapClient;

  public AuthorizationManager(AuthorizationConfiguration configuration,
                              Map presetUsers) {
    this.configuration = configuration;
    this.presetUsers = presetUsers;
    if (configuration != null && configuration.getLdapConfigPath() != null) {
      lbLdapClient = new LbLdapClient(LdapConfiguration.load(configuration.getLdapConfigPath()));
    } else {
      lbLdapClient = null;
    }
  }

  /**
   * Searches in LDAP for what groups a user is member of.
   *
   * @param sub claim
   * @return an optional membersOf for the input user
   */
  public Optional searchMemberOf(String sub) {
    return Optional.empty();
  }

  public Optional getPrivileges(String username) {
    //check the preset users
    String privs = "";

    UserConfiguration user = presetUsers.get(username);
    if (user != null) {
      privs = user.getPrivileges();
    } else if (lbLdapClient != null) {
      privs = lbLdapClient.getMemberOf(username);
    }
    return Optional.ofNullable(privs);
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy