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