package org.ovirt.engine.core.utils.kerberos;
import java.net.ConnectException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.log4j.Logger;
import org.ovirt.engine.core.tools.common.db.ConnectionFactory;
import org.ovirt.engine.core.tools.common.db.JbossConnectionFactory;
public class ManageDomainsDAOImpl implements ManageDomainsDAO {
private ManageDomainsConfiguration utilityConfiguration;
private Connection connection;
private String actionQuery = "select attach_user_to_su_role(?,?,?)";
private final static Logger log = Logger.getLogger(ManageDomainsDAOImpl.class);
public ManageDomainsDAOImpl(ManageDomainsConfiguration utilityConfiguration) throws ConnectException,
ConfigurationException, ClassNotFoundException, SQLException {
this.utilityConfiguration = utilityConfiguration;
connection = getDbConnection();
}
@Override
public boolean updatePermissionsTable(String uuid, String username, String domain) throws SQLException {
PreparedStatement prepareStatement = null;
boolean result = false;
try {
log.info("uuid: " + uuid + " username: " + username + " domain: " + domain);
prepareStatement = connection.prepareStatement(actionQuery);
prepareStatement.setString(1, uuid);
prepareStatement.setString(2, username);
prepareStatement.setString(3, domain);
result = prepareStatement.execute();
} finally {
if (prepareStatement != null) {
prepareStatement.close();
}
}
return result;
}
private Connection getDbConnection() throws ClassNotFoundException, SQLException, ConfigurationException, ConnectException {
ConnectionFactory factory =
new JbossConnectionFactory(utilityConfiguration.getJbossDataSourceFilePath(),
utilityConfiguration.getLoginConfigFilePath());
return factory.getConnection();
}
}