The Shibboleth Identity Provider web application built using a Gradle overlay. (A similar yet much uglier experiment done with Maven exists here)
This project was developed as part of Unicon's Open Source Support program. Professional support/integration assistance for this module is available. For more information, visit https://unicon.net/opensource/shibboleth.
- JDK 11
- Tomcat 9
Run once:
./gradlew clean unpackShibbolethRun afterwards:
./gradlew build overlayCreate a Run Configuration based on a Tomcat server. If you don't have a Tomcat instance available, download one as a zip archive and configure it inside IDEA. When done, select that as the application server in the "Run Configuration" screen. download one as a zip archive and configure it inside IDEA. When done, select that as the application server in the Run Configuration screen.
- Specify a URL:
https://org.example.net:8443/idp - Add the following VM options:
-Didp.home=<project-path>/build/tmp/unpackShibboleth/shibboleth-idp- For "Tomcat Server Settings", use ports
8080,8443and1099. - For "Before launch" tasks, add
build overlay.
Your external Tomcat server must have enabled port 8443 in its conf/server.xml file:
<Connector
protocol="org.apache.coyote.http11.Http11NioProtocol"
port="8443" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
keystoreFile="${user.home}/mykeystore" keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"/>Ensure Tomcat binaries are allowed to execute:
chmod +x $CATALINA_HOME/bin/*.sh
chmod +x $CATALINA_HOME/bin/*.bat- Add an
External Sourcefor deployment, and select<project-path>/build/tmp/unpackShibboleth/shibboleth-idp/webapp - Use
/idpas the application context path.
- Select
Tomcat Localhost LogandTomcat Catalina Log - Add a new log entry with the alias
idpand the log file location<project-path>/build/tmp/unpackShibboleth/shibboleth-idp/logs/idp-*.log
The src/test/overlay directory contains files that will be laid on top of the originals.
Mimic the same directory structure as the IdP itself and add files for customizations.
Authentication is mocked using a dummy JAAS connector. Use any password/username you like. All is welcome.
Logging is controlled by the logback.xml file in the overlay directory. DEBUG level is turned on by default for a number of packages.
Build the docker image without running it. This will also rebuild your shibboleth:
./gradlew buildDockerImageBuild and run the docker image, if you see an error that says that you cannot have duplicate images,
then run the cleanDockerImage task below before running this task again:
./gradlew runDockerImageStop and remove the docker image if it is running.
./gradlew cleanDockerImage

