Как сжимать и распаковывать XML присутствует в URL C ++ - PullRequest
0 голосов
/ 07 мая 2018

Я пишу saml SP на C ++, но не знаю, как сжать XML.

http://acme.com:16006/idp/samlv20?SAMLRequest={xmlCompressedandBase64encodedString}

Теперь xmlCompressedandBase64encodedString - проблемная часть, я знаю кодировку Base64, но сжатие xml я не знаю.

Мой запрос на saml будет выглядеть так:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <samlp:AuthnRequest 
        xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
        xmlns:enc="http://www.w3.org/2001/04/xmlenc#" 
        xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" 
        xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 
        xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" 
        ID="id-_Abcd1234&-rQjG" 
        Version="2.0" 
        IssueInstant="2018-05-03T06:02:22Z" 
        Destination="http://acme.com:16006/idp/samlv20">
    <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
            https://flight.com::14213/sp
    </saml:Issuer>
    <samlp:NameIDPolicy AllowCreate="true"/>

    </samlp:AuthnRequest>

То же самое касается декомпрессии SamlRespone.

1 Ответ

0 голосов
/ 07 мая 2018

В есть статья в википедии , указывающая на то, что вы должны использовать DEFLATE altorithm.

zlib - одна из самых известных библиотек, которая реализует алгоритм DEFLATE. Я слышал, что Boost.iostream может сделать это, используя zlib в качестве зависимости, но я не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...