<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Following on the last Shib Dev call, I wanted to share a simple exercise with the IdP v3 deployment. Hopefully, this example contributes to the discussion of embedding the IdP configuration in other apps, allowing deployers to only keep what they modify. One note that was raised in the discussions was the ability to “hide” the types of configurations that deployers may not immediately care about or have any need to modify and so, this example offers a solution that is based on the maven overlay mechanism:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="https://github.com/UniconLabs/shibboleth-idp-webapp">https://github.com/UniconLabs/shibboleth-idp-webapp</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>There are a few highlights in the readme file, but in summary, an idp that is deployed via an overlay allows a deployer to keep and carry only the modified components. (Similarly, this is an approach that the CAS project takes for deployments) Everything else is hidden and will be retrieved and packaged up by Maven automatically. Once the base idp war is available, an overlay project can then lay on top of it the set of files that need to be modified. The overlay is all that a deployer cares about.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>A requirement for this approach is that the base Idp itself must be self contained and it must have everything available in its own context before any overlay can overwrite it. Another advantage of this type of build is that upgrades via an overlay are fairly easily and simply may require a version bump in the pom. Also, since “the installer” (that is the maven overlay project) is quite light on size for an initial download as all dependencies for the installation and deployment steps are auto retrieved and packaged by maven.  <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Note that this sample also removes the need for ant-based installs and auto configures the entire build based on an available idp.properties file with no extra changes (well, maybe one) I had a bit of trouble in generating the metadata initially, and by converting the existing any task to a tool that can be run from the command line, I was able to mavenize that process as well. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Anyway. Hope you’ll find this useful in some way. If there is interest, I’d be happy to dive deeper in the next community call. <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Misagh<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p></div></body></html>