SmeeGen Workbook
Mix.install([{:smee_gen, ">= 0.1.0"}])
Generating a minimal CAS metadata record
SmeeGen.cas!("https://sp.example.org")
|> IO.puts()
Creating a few records to use later…
cert = """
MIIDODCCAiCgAwIBAgIJAKpLQTw/WPXCMA0GCSqGSIb3DQEBCwUAMBwxGjAYBgNV
BAMTEWFscGhhLmV4YW1wbGUub3JnMB4XDTE4MDYxODE2NDE0NVoXDTE4MDcxODE2
NDE0NVowHDEaMBgGA1UEAxMRYWxwaGEuZXhhbXBsZS5vcmcwggEiMA0GCSqGSIb3
DQEBAQUAA4IBDwAwggEKAoIBAQDHSzRUcM0WBtAjR3P1vHYkaaATjNKTxbNHn3zS
3mLnEgukOVFrr+cRByKKUQQb8MIPkuvKrz3lnoCoOwlFMRPigtChjo3UJGTYEMY9
2SQQr24U6nE/3d2qFaf2PNIW1SinSjxbE1xeT0bdLcTZHUcE2yEfHKFhcgXIJprv
R1ceBJBvYYnATuPgUxMjq2ks4kXxG0nNlT13QwBfykBv6I1Wkkc06mEvkMzKNtzr
ayBK1PygVBNVMUQAFn7Tv6c28BtVLFE9SIKj+5ZcpuWkujVNJF1dYdNmfAz3PiuE
dPt2yl3t2r/v4CP+U8kBlQs6A83xYrA0MsHnUYOrfL3UTWtZAgMBAAGjfTB7MB0G
A1UdDgQWBBT/5yBm3mXtsYDvz11kTHsPVGeRcDBMBgNVHSMERTBDgBT/5yBm3mXt
sYDvz11kTHsPVGeRcKEgpB4wHDEaMBgGA1UEAxMRYWxwaGEuZXhhbXBsZS5vcmeC
CQCqS0E8P1j1wjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAb/o/M
mt/nSHOfcjnNJS/LpouaewkoWkQn+FaXZOOvHDYhWur+mHVDpjoszUfgrTX2npmL
e8Q94bHd+cQrJpZFiYRX8l0p7dAH5Q6Ya/AnHuzGeyQ9fXiDMSWcsg2INcWi7oL9
h9+V3idcSzgAo1b7+ESSToPj7OG8tgjEp2C9jy0IKEwoApuQtRzxD1XHZFBFwwuH
nIXWxgctJPU1C+1W9b4bkFSyEGz8/HM7D9feDHbn2AKuRgd99aaOY9D59topf2Zg
t5sUTWWl54eaF5qoXKY/jdl84Tnmo8GeUufCrS0T6YQGI1LTpicPbqf7zHihQTao
I1TQuJgghwPvPE9x
"""
expires_at = DateTime.utc_now() |> DateTime.add(14, :day)
{:ok, duration} = Duration.from_iso8601("P0Y0M0DT6H0M0.000S")
Creating a full CAS metadata record
xml = SmeeGen.cas!(
"https://example.com/cas",
service_urls: ["https://example.com/secure", "https://example.com/admin"],
proxy_urls: ["https://whatever.org/proxy"],
fragment: false,
id: "1001",
valid_until: expires_at,
cache_duration: duration,
proxy_keys: [cert],
displayname: "Test XML metadata",
information_url: "https://example.com/info",
description: "Just testing things",
privacy_url: "https://example.com/privacy_policy",
privacy_urls: %{
"fr" => "https://example.com/privacy_policy_fr"
},
keywords: %{
"en" => ["one", "two", "something else"]
},
logos: [[url: "https://example.com/logo.png", width: 50, height: 50]],
contacts: [
[
company: "Example Ltd",
email: "security@example.com",
surname: "Security",
givenname: "Security",
phone: "0161 496 0001",
type: :sirtfi
],
[
company: "Example Ltd",
email: "support@example.com",
surname: "Support",
givenname: "Online",
type: :technical
]
],
organization: [
name: "Example",
url: "https://example.com"
],
ras: true,
registration_authority: "https://regauth.example.org",
registration_instant: DateTime.utc_now(),
registration_policy_url: "https://blah.example.org"
)
IO.puts xml