
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