Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Add MailHog for capturing outgoing emails
credman committed Jan 20, 2023
1 parent def6dcd commit d3988c3
Showing 5 changed files with 144 additions and 95 deletions.
8 changes: 6 additions & 2 deletions base/Dockerfile
@@ -18,7 +18,7 @@ ENV ENV=training \

# 2021-01-13 the phpldapadmin in epel is 1.2.5 which is incompatible with php 5.4.x
RUN yum install -y epel-release \
&& yum install -y mariadb mariadb-server nano openldap openldap-clients openldap-servers phpMyAdmin \
&& yum install -y mariadb mariadb-server nano openldap openldap-clients openldap-servers phpMyAdmin golang \
https://archive.fedoraproject.org/pub/archive/epel/7.2020-10-05/x86_64/Packages/p/phpldapadmin-1.2.3-10.el7.noarch.rpm \
&& yum clean all

@@ -54,6 +54,8 @@ RUN cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG \
&& pkill -HUP slapd \
&& while curl -s ldap://localhost:389 > /dev/null; do echo waiting for ldap to stop; sleep 1; done

RUN go install github.com/mailhog/MailHog@v1.0.1

COPY container_files/conf/* /opt/grouper/grouperWebapp/WEB-INF/classes/
COPY container_files/conf/grouperText/* /opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/

@@ -97,6 +99,8 @@ ENV GROUPER_START_DELAY_SECONDS=10 \
GROUPER_WS_GROUPER_AUTH=true

# note 5005 is for remote Java debugging
EXPOSE 389 3306 8080 5005
# 1025 is MailHog SMTP server
# 8025 is MailHog HTTP server
EXPOSE 389 3306 8080 5005 1025 8025

CMD ["grouper"]
6 changes: 6 additions & 0 deletions base/container_files/httpd/mailHog.conf
@@ -0,0 +1,6 @@
# MailHog
#
# Application UI runs on port 8025. Reverse proxy so it can be accessed on the normal web ports

ProxyPass /mail http://localhost:8025/mail
ProxyPassReverse /mail http://localhost:8025/mail
7 changes: 7 additions & 0 deletions base/container_files/tier-support/supervisord-training.conf
@@ -58,3 +58,10 @@ stdout_logfile = /tmp/logpipe
stdout_logfile_maxbytes=0
priority=10

[program:mailhog]
command=/root/go/bin/MailHog -ui-web-path mail
stderr_logfile = /tmp/logpipe
stderr_logfile_maxbytes=0
stdout_logfile = /tmp/logpipe
stdout_logfile_maxbytes=0
priority=400
203 changes: 111 additions & 92 deletions base/container_files/var-www-html/index.html
@@ -1,103 +1,122 @@
<!DOCTYPE html>
<html>

<head>
<title>GTE jump page</title>
<style>
#myTable {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}
<title>GTE jump page</title>
<style>
#myTable {
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
border-collapse: collapse;
width: 100%;
}

#myTable td, #myTable th {
border: 1px solid #ddd;
padding: 8px;
}
#myTable td,
#myTable th {
border: 1px solid #ddd;
padding: 8px;
}

#myTable tr:nth-child(even){background-color: #f2f2f2;}
#myTable tr:nth-child(even) {
background-color: #f2f2f2;
}

#myTable tr:hover {background-color: #ddd;}
#myTable tr:hover {
background-color: #ddd;
}

#myTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #4CAF50;
color: white;
}
</style>
#myTable th {
padding-top: 12px;
padding-bottom: 12px;
text-align: left;
background-color: #4CAF50;
color: white;
}
</style>
</head>

<body>
<h1>GTE jump page</h1>
<br /><br />
<table id="myTable">
<tr>
<th>Name</th>
<th>Link</th>
<th>Description</th>
<th>Credentials</th>
</tr>
<tr>
<td><a href="/grouper/">Grouper</a></td>
<td>https://localhost:8443/grouper/</td>
<td>Grouper UI application</td>
<td>Admin: banderson / password<br/>
Civilian: jsmith / password</td>
</tr>
<tr>
<td><a href="/phpmyadmin/">Database manager</a></td>
<td>https://localhost:8443/phpmyadmin/</td>
<td>Phpmyadmin Mysql database manager</td>
<td>root / &lt;no password&gt;</td>
</tr>
<tr>
<td><a href="/phpldapadmin/">LDAP manager</a></td>
<td>https://localhost:8443/phpldapadmin/</td>
<td>Phpldapadmin LDAP administration</td>
<td>username: cn=root,dc=internet2,dc=edu<br />password: password</td>
</tr>
<tr>
<td><a href="/app">Shibboleth attributes app</a></td>
<td>https://localhost:8443/app</td>
<td>Simple Shibboleth-protected application to show login state</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Training+Environment">Grouper training wiki</a></td>
<td></td>
<td>Links to everything you need for the training. Check Slack "pins" also.</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/GTE+commands">GTE commands</a></td>
<td></td>
<td>Commands that will start courses, shell into containers, etc</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Training+Environment+-+text+to+copy+and+paste">Text to copy/paste</a></td>
<td></td>
<td>Commands and configuration to copy and paste from slides for exercises</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Deployment+Guide">Grouper Deployment Guide</a></td>
<td></td>
<td>Grouper concepts, standards, and best practices</td>
<td></td>
</tr>
<tr>
<td><a href="https://kahoot.it/">Kahoot</a></td>
<td></td>
<td>Online quiz site</td>
<td></td>
</tr>
<tr>
<td><a href="orgchart/org_chart_brief.svg">Org chart brief</a> | <a href="orgchart/org_chart_full.svg">Org chart full</a></td>
<td></td>
<td>Departmental org charts used in the example database</td>
<td></td>
</tr>
</table>
<h1>GTE jump page</h1>
<br /><br />
<table id="myTable">
<tr>
<th>Name</th>
<th>Link</th>
<th>Description</th>
<th>Credentials</th>
</tr>
<tr>
<td><a href="/grouper/">Grouper</a></td>
<td>https://localhost:8443/grouper/</td>
<td>Grouper UI application</td>
<td>Admin: banderson / password<br />
Civilian: jsmith / password</td>
</tr>
<tr>
<td><a href="/phpmyadmin/">Database manager</a></td>
<td>https://localhost:8443/phpmyadmin/</td>
<td>Phpmyadmin Mysql database manager</td>
<td>root / &lt;no password&gt;</td>
</tr>
<tr>
<td><a href="/phpldapadmin/">LDAP manager</a></td>
<td>https://localhost:8443/phpldapadmin/</td>
<td>Phpldapadmin LDAP administration</td>
<td>username: cn=root,dc=internet2,dc=edu<br />password: password</td>
</tr>
<tr>
<td><a href="/mail/">Mail server</a></td>
<td>https://localhost:8443/mail/</td>
<td>MailHog email testing tool</td>
<td></td>
</tr>
<tr>
<td><a href="/app">Shibboleth attributes app</a></td>
<td>https://localhost:8443/app</td>
<td>Simple Shibboleth-protected application to show login state</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Training+Environment">Grouper training
wiki</a></td>
<td></td>
<td>Links to everything you need for the training. Check Slack "pins" also.</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/GTE+commands">GTE commands</a></td>
<td></td>
<td>Commands that will start courses, shell into containers, etc</td>
<td></td>
</tr>
<tr>
<td><a
href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Training+Environment+-+text+to+copy+and+paste">Text
to copy/paste</a></td>
<td></td>
<td>Commands and configuration to copy and paste from slides for exercises</td>
<td></td>
</tr>
<tr>
<td><a href="https://spaces.at.internet2.edu/display/Grouper/Grouper+Deployment+Guide">Grouper Deployment
Guide</a></td>
<td></td>
<td>Grouper concepts, standards, and best practices</td>
<td></td>
</tr>
<tr>
<td><a href="https://kahoot.it/">Kahoot</a></td>
<td></td>
<td>Online quiz site</td>
<td></td>
</tr>
<tr>
<td><a href="orgchart/org_chart_brief.svg">Org chart brief</a> | <a href="orgchart/org_chart_full.svg">Org chart
full</a></td>
<td></td>
<td>Departmental org charts used in the example database</td>
<td></td>
</tr>
</table>
</body>

</html>
15 changes: 14 additions & 1 deletion ex101/ex101.1.1/container_files/seed-data/bootstrap.gsh
@@ -64,12 +64,25 @@ Group globalDeny = new GroupSave(gs).assignName("ref:iam:global_deny").assignCre
assignObjectTypeForGroup(globalDeny, "ref", "Identity and Access Management", "Global deny group")


// Set include/exclude properties
// Set grouper.properties

GrouperDbConfig config = new GrouperDbConfig().configFileName("grouper.properties")

config.propertyName("provisioner.eduPersonAffiliation.canFullSync").value('''true''').store()

// email settings
config.propertyName("grouper.ui.url").value('''https://localhost:8443/grouper/''').store()
config.propertyName("mail.smtp.server").value('''localhost''').store()
config.propertyName("mail.smtp.port").value('''1025''').store()
config.propertyName("mail.smtp.ssl").value('''false''').store()
config.propertyName("mail.smtp.starttls.enable").value('''false''').store()
config.propertyName("mail.smtp.from.address").value('''grouper@internet2.edu.invalid''').store()
config.propertyName("mail.smtp.externalSystemTestToType").value('''emailAddress''').store()
config.propertyName("mail.smtp.externalSystemTestToAddress").value('''grouper@internet2.edu.invalid''').store()
config.propertyName("mail.smtp.externalSystemTestSubject").value('''Test of Grouper mail''').store()
config.propertyName("mail.smtp.externalSystemTestBody").value('''This is a test of grouper mail''').store()


// Autopopulate policy deny group
config.propertyName("grouper.lockoutGroup.name.0").value('''ref:iam:global_deny''').store()

0 comments on commit d3988c3

Please sign in to comment.