NameIDFormat support.
[shibboleth/cpp-sp.git] / configs / metagen.sh
index 281fa5f..89568fa 100755 (executable)
@@ -21,17 +21,19 @@ SAML20PAOS="urn:oasis:names:tc:SAML:2.0:bindings:PAOS"
 SAML1POST="urn:oasis:names:tc:SAML:1.0:profiles:browser-post"
 SAML1ART="urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"
 
-while getopts a:c:e:h:n:o:s:t:12ADLN c
+while getopts a:c:e:f:h:n:o:s:t:u:12ADLN c
      do
          case $c in
            c)   CERTS[${#CERTS[*]}]=$OPTARG;;
            e)   ENTITYID=$OPTARG;;
+           f)   FORMATS=[${#FORMATS[*]}]=$OPTARG;;
            h)   HOSTS[${#HOSTS[*]}]=$OPTARG;;
            n)   NAKEDHOSTS[${#NAKEDHOSTS[*]}]=$OPTARG;;
            o)   ORGNAME=$OPTARG;;
            a)   ADMIN[${#ADMIN[*]}]=$OPTARG;;
            s)   SUP[${#SUP[*]}]=$OPTARG;;
            t)   TECH[${#TECH[*]}]=$OPTARG;;
+           u)   URL=$OPTARG;;
            1)   SAML1=1;;
            2)   SAML2=1;;
            A)   ARTIFACT=1;;
@@ -44,7 +46,7 @@ while getopts a:c:e:h:n:o:s:t:12ADLN c
      done
 
 if [ ${#HOSTS[*]} -eq 0 -a ${#NAKEDHOSTS[*]} -eq 0 ] ; then
-    echo metagen -c cert1 [-c cert2 ...] -h host1 [-h host2 ...] [-e entityID]
+    echo metagen [-12ADLN] -c cert1 [-c cert2 ...] -h host1 [-h host2 ...] [-e entityID]
     exit 1
 fi
 
@@ -173,6 +175,13 @@ cat << EOF
 EOF
 done
 
+for f in ${FORMATS[@]}
+do
+cat << EOF
+    <md:NameIDFormat>$f</md:NameIDFormat>
+EOF
+done
+
 # Logout BEGIN
 if [ $LOGOUT -eq 1 ] ; then
 
@@ -265,11 +274,14 @@ cat <<EOF
 EOF
 
 if [ -n "$ORGNAME" ] ; then
+  if [ -z "$URL" ] ; then
+    URL=$ENTITYID
+  fi
   cat <<EOF
   <md:Organization>
     <md:OrganizationName xml:lang="en">$ORGNAME</md:OrganizationName>
     <md:OrganizationDisplayName xml:lang="en">$ORGNAME</md:OrganizationDisplayName>
-    <md:OrganizationURL xml:lang="en">$ENTITYID</md:OrganizationURL>
+    <md:OrganizationURL xml:lang="en">$URL</md:OrganizationURL>
   </md:Organization>
 EOF
 fi