summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Krogh <markus@nordu.net>2017-10-03 21:26:01 +0200
committerMarkus Krogh <markus@nordu.net>2017-10-03 21:26:01 +0200
commit31def545e41fd4d3ca7754ff33460f15b50fe789 (patch)
tree058cac29536dfdb8e03d4d3f60e557d2358fea3c
parent08c5c6b74eae21ccbb35d3286b45d60a1bbab449 (diff)
SP add, and cleanup
-rw-r--r--compose-prod.yml2
-rw-r--r--idp/Dockerfile2
-rwxr-xr-xidp/shib-entrypoint.sh31
-rw-r--r--idp/templates/config/attribute-filter.xml5
-rw-r--r--idp/templates/config/metadata-providers.xml1
-rw-r--r--idp/templates/config/sp.xml.add1
6 files changed, 35 insertions, 7 deletions
diff --git a/compose-prod.yml b/compose-prod.yml
index b3094d2..7396245 100644
--- a/compose-prod.yml
+++ b/compose-prod.yml
@@ -3,7 +3,7 @@ services:
shibboleth-docker:
build: ./idp
environment:
- - JAVA_OPTIONS=-Xmx1G
+ - JAVA_OPTIONS=-Xmx1500m
- IDP_HOSTNAME=idp.nordu.net
- IDP_SCOPE=nordu.net
- IDP_DEBUG=true
diff --git a/idp/Dockerfile b/idp/Dockerfile
index 0e1efc5..d812493 100644
--- a/idp/Dockerfile
+++ b/idp/Dockerfile
@@ -26,8 +26,6 @@ ADD https://mds.swamid.se/md/md-signer2.crt /opt/shibboleth-idp/credentials/
RUN chown -R jetty:jetty /opt
-#RUN mkdir -p persistent-id && sqlite3 persistent-id/shibboleth.db < /tmp/shibboleth.db.ddl && rm -f /tmp/shibboleth.db.ddl
-
COPY jetty_base $JETTY_BASE
COPY shib-entrypoint.sh /shib-entrypoint.sh
USER jetty
diff --git a/idp/shib-entrypoint.sh b/idp/shib-entrypoint.sh
index 56ce16c..a1dc327 100755
--- a/idp/shib-entrypoint.sh
+++ b/idp/shib-entrypoint.sh
@@ -65,13 +65,37 @@ if [ -f ${DATADIR}/credentials/idp-signing.key -a -f ${DATADIR}/credentials/idp-
cp ${DATADIR}/credentials/idp-signing.key /opt/shibboleth-idp/credentials/idp-signing.key
cp ${DATADIR}/credentials/idp-signing.crt /opt/shibboleth-idp/credentials/idp-signing.crt
fi
+# overwrite encryption keys if present
+if [ -f ${DATADIR}/credentials/idp-encryption.key -a -f ${DATADIR}/credentials/idp-encryption.crt ]; then
+ cp ${DATADIR}/credentials/idp-encryption.key /opt/shibboleth-idp/credentials/idp-encryption.key
+ cp ${DATADIR}/credentials/idp-encryption.crt /opt/shibboleth-idp/credentials/idp-encryption.crt
+fi
+
+# overwrite idp-metadata if present
+if [ -f ${DATADIR}/idp-metadata.xml.xml ]; then
+ cp ${DATADIR}/idp-metadata.xml /opt/shibboleth-idp/metadata/
+fi
if [ -e ${DATADIR}/messages ]; then
cp $DATADIR/messages/* /opt/shibboleth-idp/messages/
fi
-if [ $IDP_DEBUG ]; then
- sed -i -e '/idp.loglevel.messages/ s/INFO/DEBUG/' -e '/idp.loglevel.encryption/ s/INFO/DEBUG/' /opt/shibboleth-idp/conf/logback.xml
+# SP add
+if [ -e ${DATADIR}/sp-metadata ]; then
+ cp ${DATADIR}/sp-metadata/*.xml /opt/shibboleth-idp/metadata/
+ for sp_file in ${DATADIR}/sp-metadata/*.xml; do
+ SP_XML=$(basename "$sp_file")
+ SP_NAME=${SP_XML%.*}
+ ENTITY_ID=$(grep -o 'entityID=".*"' "$sp_file" | sed -e 's/entityID="//' -e 's/".*$//')
+
+ if ! grep "$SP_XML" /opt/shibboleth-idp/conf/metadata-providers.xml ; then
+ sed -i '/<!-- local SPs -->/r /opt/templates/config/sp.xml.add' /opt/shibboleth-idp/conf/metadata-providers.xml
+ sed -i -e "s/SP_NAME/$SP_NAME/" -e "s/SP_XML/$SP_XML/" /opt/shibboleth-idp/conf/metadata-providers.xml
+
+ # Release attributes
+ sed -i "/<!-- local SPs -->/a <Rule xsi:type=\"Requester\" value=\"$ENTITY_ID\" />" /opt/shibboleth-idp/conf/attribute-filter.xml
+ fi
+ done
fi
# Styling/view properties
@@ -82,4 +106,5 @@ if [ -n "$IDP_FOOTER" ]; then
fi
fi
-/docker-entrypoint.sh java -jar /usr/local/jetty/start.jar $JAVA_OPTIONS
+# Start jetty
+/docker-entrypoint.sh java -jar /usr/local/jetty/start.jar
diff --git a/idp/templates/config/attribute-filter.xml b/idp/templates/config/attribute-filter.xml
index 3514282..8d61071 100644
--- a/idp/templates/config/attribute-filter.xml
+++ b/idp/templates/config/attribute-filter.xml
@@ -226,7 +226,10 @@
<!-- ukfederation + incommon -->
<AttributeFilterPolicy id="everyoneInSwamidFeed">
- <PolicyRequirementRule xsi:type="InEntityGroup" groupID="http://mds.swamid.se/md/swamid-2.0.xml" />
+ <PolicyRequirementRule xsi:type="OR">
+ <Rule xsi:type="InEntityGroup" groupID="http://mds.swamid.se/md/swamid-2.0.xml" />
+ <!-- local SPs -->
+ </PolicyRequirementRule>
<AttributeRule attributeID="givenName">
<PermitValueRule xsi:type="ANY" />
</AttributeRule>
diff --git a/idp/templates/config/metadata-providers.xml b/idp/templates/config/metadata-providers.xml
index d813c06..a580688 100644
--- a/idp/templates/config/metadata-providers.xml
+++ b/idp/templates/config/metadata-providers.xml
@@ -54,4 +54,5 @@
<!--<MetadataProvider id="sp.nordu.dev" xsi:type="FilesystemMetadataProvider" metadataFile="/metadata/sp-metadata.xml" /> -->
+ <!-- local SPs -->
</MetadataProvider>
diff --git a/idp/templates/config/sp.xml.add b/idp/templates/config/sp.xml.add
new file mode 100644
index 0000000..7c7eac4
--- /dev/null
+++ b/idp/templates/config/sp.xml.add
@@ -0,0 +1 @@
+ <MetadataProvider id="SP_NAME" xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/SP_XML" />