Read metadata from somewhere and dump it in the MD format.
This commit is contained in:
@@ -1,16 +1,22 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
import sys
|
import sys
|
||||||
|
from saml2.httpbase import HTTPBase
|
||||||
|
|
||||||
from saml2 import saml
|
from saml2 import saml
|
||||||
from saml2 import md
|
from saml2 import md
|
||||||
from saml2.extension import mdui
|
from saml2.attribute_converter import ac_factory
|
||||||
from saml2.extension import idpdisc
|
|
||||||
from saml2.extension import dri
|
from saml2.extension import dri
|
||||||
|
from saml2.extension import idpdisc
|
||||||
from saml2.extension import mdattr
|
from saml2.extension import mdattr
|
||||||
|
from saml2.extension import mdrpi
|
||||||
|
from saml2.extension import mdui
|
||||||
|
from saml2.extension import shibmd
|
||||||
from saml2.extension import ui
|
from saml2.extension import ui
|
||||||
import xmldsig
|
import xmldsig
|
||||||
import xmlenc
|
import xmlenc
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
|
||||||
from saml2.mdstore import MetaDataFile, MetaDataExtern
|
from saml2.mdstore import MetaDataFile, MetaDataExtern
|
||||||
|
|
||||||
__author__ = 'rolandh'
|
__author__ = 'rolandh'
|
||||||
@@ -20,45 +26,49 @@ A script that imports and verifies metadata and then dumps it in a basic
|
|||||||
dictionary format.
|
dictionary format.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
MDIMPORT = {
|
|
||||||
"swamid": {
|
|
||||||
"url": "https://kalmar2.org/simplesaml/module.php/aggregator/?id=kalmarcentral2&set=saml2",
|
|
||||||
"cert":"kalmar2.pem",
|
|
||||||
"type": "external"
|
|
||||||
},
|
|
||||||
"incommon": {
|
|
||||||
"file": "InCommon-metadata.xml",
|
|
||||||
"type": "local"
|
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"file": "mdtest.xml",
|
|
||||||
"type": "local"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ONTS = {
|
ONTS = {
|
||||||
saml.NAMESPACE: saml,
|
saml.NAMESPACE: saml,
|
||||||
mdui.NAMESPACE: mdui,
|
mdui.NAMESPACE: mdui,
|
||||||
mdattr.NAMESPACE: mdattr,
|
mdattr.NAMESPACE: mdattr,
|
||||||
|
mdrpi.NAMESPACE: mdrpi,
|
||||||
dri.NAMESPACE: dri,
|
dri.NAMESPACE: dri,
|
||||||
ui.NAMESPACE: ui,
|
ui.NAMESPACE: ui,
|
||||||
idpdisc.NAMESPACE: idpdisc,
|
idpdisc.NAMESPACE: idpdisc,
|
||||||
md.NAMESPACE: md,
|
md.NAMESPACE: md,
|
||||||
xmldsig.NAMESPACE: xmldsig,
|
xmldsig.NAMESPACE: xmldsig,
|
||||||
xmlenc.NAMESPACE: xmlenc
|
xmlenc.NAMESPACE: xmlenc,
|
||||||
|
shibmd.NAMESPACE: shibmd
|
||||||
}
|
}
|
||||||
|
|
||||||
item = MDIMPORT[sys.argv[1]]
|
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument('-t', dest='type')
|
||||||
|
parser.add_argument('-u', dest='url')
|
||||||
|
parser.add_argument('-c', dest='cert')
|
||||||
|
parser.add_argument('-a', dest='attrsmap')
|
||||||
|
parser.add_argument('-o', dest='output')
|
||||||
|
parser.add_argument(dest="item")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
metad = None
|
metad = None
|
||||||
|
|
||||||
if item["type"] == "local":
|
if args.type == "local":
|
||||||
metad = MetaDataFile(sys.argv[1], ONTS.values(), item["file"])
|
metad = MetaDataFile(ONTS.values(), args.item, args.item)
|
||||||
elif item["type"] == "external":
|
elif args.type == "external":
|
||||||
metad = MetaDataExtern(sys.argv[1], ONTS.values(),
|
ATTRCONV = ac_factory(args.attrsmap)
|
||||||
item["url"], "/opt/local/bin/xmlsec1", item["cert"])
|
httpc = HTTPBase()
|
||||||
|
metad = MetaDataExtern(ONTS.values(), ATTRCONV, args.url,
|
||||||
|
"/opt/local/bin/xmlsec1",
|
||||||
|
args.cert, httpc)
|
||||||
|
|
||||||
if metad:
|
if metad:
|
||||||
metad.load()
|
metad.load()
|
||||||
print metad.dumps()
|
txt = metad.dumps()
|
||||||
|
if args.output:
|
||||||
|
f = open(args.output, "w")
|
||||||
|
f.write(txt)
|
||||||
|
f.close()
|
||||||
|
else:
|
||||||
|
print txt
|
||||||
|
Reference in New Issue
Block a user