diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..6de6318ced5a1f38d01f3cff4a9ebb62b59ff521 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,52 @@ +FROM ubuntu:18.10 + +# To fix "configuring tzdata" interactive input during apt install +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update && \ + apt-get install -yq --no-install-recommends \ + apache2 \ + libapache2-mod-php7.2 \ + php7.2-xml \ + php7.2-mbstring \ + php-mysql \ + php-curl \ + libapache2-mod-shib2 \ + make \ + wget \ + ca-certificates \ + vim + +# Copying Shibboleth SP configuration +COPY docker/shibboleth2.xml /etc/shibboleth/ + +# Installing Embedded Discovery Service +WORKDIR /usr/local/src + +RUN wget https://shibboleth.net/downloads/embedded-discovery-service/1.2.1/shibboleth-embedded-ds-1.2.1.tar.gz -O shibboleth-eds.tar.gz +RUN tar xzf shibboleth-eds.tar.gz + +WORKDIR shibboleth-embedded-ds-1.2.1 +RUN make install + +RUN mv /etc/shibboleth-ds/shibboleth-ds.conf /etc/apache2/conf-available/shibboleth-ds.conf +RUN sed -i 's/Allow from All/Require all granted/g' /etc/apache2/conf-available/shibboleth-ds.conf +RUN a2enconf shibboleth-ds.conf + +# Adding RAP Apache configuration +COPY docker/rap.conf /etc/apache2/conf-available/ +RUN a2enconf rap.conf + +# Enable mod_rewrite (for Flight framework) +RUN a2enmod rewrite + +# Copying RAP php files +WORKDIR /var/www/html +COPY . rap-ia2 + +WORKDIR /var/www/html/rap-ia2 +RUN mkdir -p logs +RUN chown -R www-data logs + +# Starting Apache +CMD apachectl -D FOREGROUND diff --git a/classes/datalayer/mysql/BaseMySQLDAO.php b/classes/datalayer/mysql/BaseMySQLDAO.php index 3741c956700b258629ac435b31bbf82e5e99783f..7798f38be74c4eddc0d24c7ea1075a6a16fe59bd 100644 --- a/classes/datalayer/mysql/BaseMySQLDAO.php +++ b/classes/datalayer/mysql/BaseMySQLDAO.php @@ -17,7 +17,7 @@ abstract class BaseMySQLDAO { */ public function getDBHandler(): PDO { $config = $this->locator->config->databaseConfig; - $connectionString = "mysql:host=" . $config->hostname . ";dbname=" . $config->dbname; + $connectionString = "mysql:host=" . $config->hostname . ";port=" . $config->port . ";dbname=" . $config->dbname; $dbh = new PDO($connectionString, $config->username, $config->password); // For transaction errors (see https://stackoverflow.com/a/9659366/771431) $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); diff --git a/classes/datalayer/mysql/MySQLUserDAO.php b/classes/datalayer/mysql/MySQLUserDAO.php index 3b9768e15836311414492888defd7375cd8ab48d..cc1adaa0fd3aacee871859c5eb4516e333cbdb04 100644 --- a/classes/datalayer/mysql/MySQLUserDAO.php +++ b/classes/datalayer/mysql/MySQLUserDAO.php @@ -234,7 +234,7 @@ class MySQLUserDAO extends BaseMySQLDAO implements UserDAO { array_push($user->identities, $identity); } - + $users = []; foreach ($userMap as $userId => $user) { array_push($users, $user); diff --git a/docker/db/1-user.sql b/docker/db/1-user.sql new file mode 100644 index 0000000000000000000000000000000000000000..4e6eaff8868eca18050813860b6d4dcd83d270c0 --- /dev/null +++ b/docker/db/1-user.sql @@ -0,0 +1,5 @@ +CREATE DATABASE rap; +CREATE USER rap@'%' IDENTIFIED BY 'rap123'; +GRANT ALL PRIVILEGES ON rap.* TO rap@'%'; + +USE rap; diff --git a/docker/db/Dockerfile b/docker/db/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..6fe9ed1f095e8d379dbbd64dadcd13233b4a1bdf --- /dev/null +++ b/docker/db/Dockerfile @@ -0,0 +1,9 @@ +FROM mariadb:10.4 + +ENV MYSQL_ROOT_PASSWORD=root + +ADD docker/db/event.cnf /etc/mysql/conf.d/ +ADD docker/db/1-user.sql /docker-entrypoint-initdb.d/ +ADD sql/setup-database.sql /docker-entrypoint-initdb.d/ + +RUN sed -i.old '1s;^;USE rap\;\n;' /docker-entrypoint-initdb.d/setup-database.sql diff --git a/docker/db/event.cnf b/docker/db/event.cnf new file mode 100644 index 0000000000000000000000000000000000000000..49fd8488e55101f2e365efef926f7a224c10f042 --- /dev/null +++ b/docker/db/event.cnf @@ -0,0 +1,2 @@ +[mysqld] +event_scheduler=1 diff --git a/docker/rap.conf b/docker/rap.conf new file mode 100644 index 0000000000000000000000000000000000000000..dc0c73acb632e79fffd05daebcebd70f7f20c291 --- /dev/null +++ b/docker/rap.conf @@ -0,0 +1,3 @@ + + AllowOverride All +