Class: SatMx::XmlAuthBody

Inherits:
Object
  • Object
show all
Defined in:
lib/sat_mx/authentication.rb

Instance Method Summary collapse

Constructor Details

#initialize(certificate:, uuid:) ⇒ XmlAuthBody

Returns a new instance of XmlAuthBody.



47
48
49
50
# File 'lib/sat_mx/authentication.rb', line 47

def initialize(certificate:, uuid:)
  @certificate = certificate
  @uuid = uuid
end

Instance Method Details

#generateObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/sat_mx/authentication.rb', line 52

def generate
  <<~XML
    <S11:Envelope xmlns:S11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
      <S11:Header>
        <wsse:Security S11:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
          #{timestamp}
          <wsse:BinarySecurityToken wsu:Id="#{uuid}" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">#{Base64.strict_encode64(certificate.to_der)}</wsse:BinarySecurityToken>
          <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
            #{signed_info}
            <SignatureValue></SignatureValue>
            <KeyInfo>
              <wsse:SecurityTokenReference>
                <wsse:Reference ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" URI="##{uuid}" />
              </wsse:SecurityTokenReference>
            </KeyInfo>
          </Signature>
        </wsse:Security>
      </S11:Header>
      <S11:Body>
        <Autentica xmlns="http://DescargaMasivaTerceros.gob.mx" />
      </S11:Body>
    </S11:Envelope>
  XML
end