Portál AbcLinuxu, 1. června 2024 10:28

Dotaz: Popis dokumentu v odesílané zprávě

18.11.2009 19:55 petr_p | skóre: 59 | blog: pb
Popis dokumentu v odesílané zprávě
Přečteno: 5076×
Odpovědět | Admin

Dostal jsem se k posílání zpráv do ISDS. Odeslal jsem zprávu s tímto dokumentem:

<dmFile dmMimeType="text/plain" dmFileMetaType="enclosure" dmFileDescr="Standard text">
          <dmEncodedContent>SGVsbG8gV29ybGQhAA==
</dmEncodedContent>
</dmFile>

A nedovede si představit, co že mi přišlo za chybu:

Server did not accept message for vqbab52 on CreateMessage request (code=1214, message=Přípona souboru přiloženého k datové zprávě není v seznamu povolených přípon

Co to sakra je? Takhle si představují kontrolu na přípustné formáty? Od čeho máme atribut @dmMimeType? Proč si do @dmFileDescr nemůžu napsat, co chci, když i dokumentace říká:

může obsahovat jméno souboru, příp. jiný popis. Objeví se v seznamu příloh na portále

Tohle mi hlava nebere. Nevíte někdo, jak to tedy je? Znamená to, že si /etc/passwd přes ISDS nepošlu? A to jsem už překousl, že se příjemce nikde nedozví, v jaké znakové sadě je ten text.

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.11.2009 20:31 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil jsem poslat tu samou zprávu s popisem dokumentu „Standard text.txt“ a výsledkem byla chyba code=1214, message=Obsah souboru přiloženého k datové zprávě neodpovídá příponě souboru. Tak buď jsem přehlédl něco fatálního já, nebo to mají nějaké rozbité oni.
18.11.2009 21:17 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Že by se ISDS díval do obsahu zprávy? Zkusil jsem poslat zprávu s textovým obsahem "Tohle je text" a s popisem "Standard text.pdf" a mimetypem "application/pdf" a dostal jsem přesně tuhle chybu 1214.
18.11.2009 22:23 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
A jde vám odeslat textový dokument?
19.11.2009 12:28 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Mně to jde, popis je "Óda_na_příliš_žluťoučkého_koně.txt", metatype je "enclosure", mimetype je "text/plain" a obsah dokumentu je "Příliš žluťoučký kůň úpěl ďábelské ódy." v kodování UTF-8.
19.11.2009 14:24 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě

To je divný. Kóduji ten text do MIME Base64 správně? Níže je požadavek, který selže. Nevidíte tam nějakou chybu?

SOAP request to sent to https://www.czebox.cz/DS/dz:
<?xml version="1.0" encoding="UTF-8"?>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
  <Body>
    <CreateMessage xmlns="http://isds.czechpoint.cz/v20">
      <dmEnvelope>
        <dmSenderOrgUnit/>
        <dmSenderOrgUnitNum>42</dmSenderOrgUnitNum>
        <dbIDRecipient>vqbab52</dbIDRecipient>
        <dmRecipientOrgUnit/>
        <dmRecipientOrgUnitNum/>
        <dmToHands/>
        <dmAnnotation>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</dmAnnotation>
        <dmRecipientRefNumber/>
        <dmSenderRefNumber/>
        <dmRecipientIdent/>
        <dmSenderIdent/>
        <dmLegalTitleLaw/>
        <dmLegalTitleYear/>
        <dmLegalTitleSect/>
        <dmLegalTitlePar/>
        <dmLegalTitlePoint/>
        <dmPersonalDelivery/>
        <dmAllowSubstDelivery/>
        <dmOVM/>
      </dmEnvelope>
      <dmFiles>
        <dmFile dmMimeType="text/plain" dmFileMetaType="main" dmFileDescr="standard_text.txt">
          <dmEncodedContent>SGVsbG8gV29ybGQhAA==
</dmEncodedContent>
        </dmFile>
      </dmFiles>
    </CreateMessage>
  </Body>
</Envelope>
19.11.2009 13:24 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Koukám, že ten řetězec po dekodování z BASE64 je null terminated string. Není problém v tom, že tyhle řetězce ISDS v obsahu zprávy neakceptuje?
$ echo "SGVsbG8gV29ybGQhAA==" | base64 -d | od -c
0000000   H   e   l   l   o       W   o   r   l   d   !  \0
0000015
19.11.2009 14:33 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Je to tak. Bez znaku 0x0 to jede projde. Teď nevím, jestli mám změnit definici plain textu nebo jestli jim mám poslat výhružný e-mail. Co když tam někdo bude tlačit UTF-16?
18.11.2009 21:01 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle je kapitola sama pro sebe. Moje zkušenosti:
  1. V dokumentaci je uvedeno, že první příloha musí mít dmFileMetaType main, další pak enclosure, signature či meta. Přes ISDS ale projde cokoliv, takže se zjevně hodnota tohoto atributu ignoruje. V dokumentaci označen jako povinný, na portále se nepoužívá.
  2. Popis opravdu musí mít příponu a tato přípona musí být navíc povolena, takže /etc/passwd přes ISDS nelze poslat. Navíc ta přípona musí korespondovat s mimetypem, takže třeba popis "ahoj.pdf" a mimetype "text/plain" neprojde.
  3. U odpovědí na poslanou zprávu na testovací schránku (úřad Milotice apod.) je mimetype roven "pdf", ne správný "application/pdf".
Celkově ta dokumentace stojí za zlámanou grešli.
19.11.2009 06:55 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Myslim, ze kazdy z programatoru ISDS by mel dostat na celo cejch "Lama" jako varovani pro pripadne budouci zamestnavatele. Jak mohli vymyslet neco tak spatneho?
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
19.11.2009 13:41 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Já se obávám, že těch "překvapení" bude ještě víc. Mimochodem, podobnou chybou se také zabývají na jejich helpdesku (odkaz je wiki s přihlašovacími údaji), ze strany S602 to tam nikdo nezodpověděl.
19.11.2009 14:26 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Dnes jsem se tam díval a někdo to řádně promazal, visí tam jen jediný problém.
19.11.2009 14:41 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Tak nic, odněkud se tam vzal přednastavený filtr. To uživatelské rozhraní je fakt pochopitelné.
19.11.2009 16:58 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Ten jejich helpdesk je parodie, nepřehledné uživatelsky nepřívětivé prostředí, stránkování po 10 dotazech - proč si nemohu vybrat, že chci na jednu stránku zobrazit třeba 30 dotazů? A mohl bych pokračovat. No prostě příklad toho, jak živatelské rozhraní nemá vypadat.
20.11.2009 10:42 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mate-li konkretni dotazy na DS, zaslete mi je, zkusim ziskat odpovedi od programatoru komercnich firem.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
23.11.2009 19:41 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Odpovědět | | Sbalit | Link | Blokovat | Admin
V aktuální dokumentaci ISDS k 26.10.2009 se pozměnil význam atributu dmFileDescr:
dmFileDescr - název vloženého souboru, povinný údaj, objeví se na Portále v seznamu písemností. Z jeho přípony Portál usuzuje na typ souboru a umožňuje provést další akce, např. umožnit odeslání k autorizované konverzi pro soubor typu PDF.
V té dokumentaci je spousta nesrovnalostí, u podepsané přijaté zprávy má být jmenný prostor podle dokumentace "isds.czebox.cz/v20/message", ve skutečnosti je "http://isds.czechpoint.cz/v20/message".

Kvalifikovaná časová značka podání zprávy není v dokumentaci nijak specifikována, ale jedná se o RFC 3161. Něco málo o tom jsem napsal na wiki.
23.11.2009 22:11 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě

No je to naprosté diletanství. To by mohli @dmMimeType rovnou zrušit. Nikde není seznam jediných správných přípon. Zvláštní jmenný prostor pro podepsané obálky je taky hloupost, protože ten podpis je nad obálkou a jmenný prostor identifikuje druh dat (obálka jako obálka), nikoliv jakousi externí vlastnost – být podepsán.

Ale i takový jev, že zpráva má jiný tvar podle toho, jestli se odesílá, přijímá nebo se stahuje doručenka, mi pije krev. Vždyť všechno mohla být formálně stejná zpráva a do ní jen přilepovat nové údaje, podle toho, jak se mění její stav (podaná, doručená, přijatá).

S tím souvisí moje otázka: Jak jste řešil lokální ukládání? Já jsem původně chtěl poskytnout aplikaci syrové SOAP tělo, jenže protože různé požadavky vrací stejnou zprávu jinak, tak jsem to zavrhl. Ve čtvrté příloze je formát ESS. Má smysl se s ním lopotit? Nechce se mi vymýšlet další formát, kterému by rozuměl jen můj program.

Dalším extrabuřtem je jiný formát pro informace o schránce ve zprávě a v informacích o schránce. Opět to jsou stejné údaje, jen pro potěšení spisových služeb, aby se nemuseli s těmito údaji formátovat, jim tyto údaje předžvýká ISDS. Takže z přijaté zprávy nelze strojově zjistit, kdo a komu ji poslal. Přitom stačilo do zprávy nastrkat dbOwnerInfo.

24.11.2009 10:17 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
V dokumentaci k ISDS k 26. 10. 2009 ohledně přípon a MIME typů se píše:

Je-li u písemnosti specifikován mime-type, nesmí být na seznamu zakázaných mime-typů, který v současnosti obsahuje: application/x-zip-compressed a application/x-msdownload.

Přípona jméno souboru tvořícího písemnost, se v této verzi musí vyskytovat na seznamu povolených přípon, který zahrnuje: pdf, xml, fo, zfo, html, htm, odt, ods, odp, txt, rtf, doc, xls, ppt, jpg, jpeg, jfif, png, tiff, gif, mpeg1 mpeg2, wav, mp2, mp3. Nově byly přidány: cer, crt, der, pk7 - formáty certifikátů dle X509; p7b, p7c, p7f, p7m, p7s - formáty certifikátů a elektronických podpisů dle PKCS#7, tst – časové razítko. Skutečná struktura souboru a její shoda se strukturou odpovídající příponě se v současné verzi nekontroluje, ale plánuje se do budoucna.

Ten první odstavec ohledně MIME typů je silně zavádějící, MIME type je povinný, zpráva bez něj neprojde a přijaté zprávy ho nemusí splňovat (třeba odpovědi testovacích schránek mají MIME type "pdf", ne správný "aplication/pdf"). Na tom jejich nepřehledném helpdesku někdo odpovídal, že ta povinost specifikace MIME typů se týká jen testovacích schránek a v produkčním prostředí se zatím ignoruje. Shoda přípon dokumentů s obsahem se již provádí, např. nelze odeslat textový dokument se znaky 0x0.

Také by mně zajímalo, z jakého důvodu nejsou podporované komprimované soubory?

Ten odlišný jmenný prostor jsem pochopil jaku hack pro ten jejich XML Form Filler, aby ji mohl otevřít, neboť v dokumentaci se píše:

Obsah zprávy po odstranění podpisu je totožný s popisem u MessageDownload, pouze s odlišným namespace „isds.czebox.cz/v20/message“. Pokud budete validovat výsledné XML proti XSD, musíte řetězec „/message“ odmazat.

Staženou podepsanou zprávu umí 602XMLFiller analyzovat a otevřít (díky namespace). Přitom zobrazí údaje o podpisu a o časovém razítku. Aplikace třetích stran mohou pro totéž použít např. MS Crypto API pro Windows nebo OpenSSL API pro Linux. Stažená zpráva NENÍ ve formátu fo nebo zfo (XML formulář), jedná se pouze o XML data.

24.11.2009 10:42 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě

Jak budu řešit ukládání zpráv? Dobrý dotaz. Napadají mě dvě řešení, buď ukládat zprávu i s binární obálkou podpisu ve formátu PKCS#7 nebo výsledný XML dokument po odstranění této obálky, ten neobsahuje SOAP tělo. Do obsahu zprávy přitom nebudu nijak zasahovat, jmenné prostory ponechám. Zprávy pro archivaci budu stahovat službou SignedMessageDownload.

U toho SOAPu a služby MessageDownload je problém s tím, že nesmím porušit fyzickou strukturu dokumentu kvůli výpočtu haše zprávy a ověření časového razítka, takže bych tu zprávu musel ukládat i se SOAP tělem, tak jak ji dostanu, což nedává moc smysl nebo tu SOAP tělo odstranit a přitom ponechat fyzickou strukturu zprávy, což je problém.

24.11.2009 10:52 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Já jsem chtěl ukládat i rozepsanou zprávu – to, co se posílá uvnitř CreateMessage. Protože jinak to znamená poslat 10 MB tam a zase je zpátky stáhnout. A představoval jsem si, že zpráva ve všech svých stavech bude formálně pořád jedna a tatáž struktura. Jenže systém tuto ideální představu porušuje.
24.11.2009 12:31 vrosecky | skóre: 5
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Stahování námi odeslané zprávy se bohužel nevyhneme. Jak budete ověřovat integritu zprávy? Já používám dvouprůchodové řešení, při prvním XML parserem zjistím haš zprávy + algoritmus uvedený ve zprávě a časové razítko, při druhém průchodu pak spočítám haš zprávy a ověřím ho s informacemi zjištěnými při prvním průchodu. První průchod se dá nahradit dotazem na službu MessageEnvelopeDownload, když jsem "on-line".
24.11.2009 16:09 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě

Protože zbaběle utekly od XMLdsigu, tak se to bohužel jinak udělat nedá. Když aplikace poskytne zprávu, kterou si někdo někde ukuchtil, tak nebude sedět hash. Prostě to bude zodpovědnost aplikace.

„Rozepsanou“ zprávu prostě nebude možné ověřit. Respektive zpráva bude považována za netotožnou. Jinak bych musel simulovat pochody ISDS (a dělat takové úchylárny jako je doplňování nedefinovaného čísla organizační jednotky na nulu) se všemi jeho chybami.

24.11.2009 21:20 Leoš Literák | skóre: 74 | blog: LL | Praha
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Pokud mate nejake konkretni dotazy ohledne implementace DS, napiste mi je. Ziskam odpovedi.
Zakladatel tohoto portálu. Twitter, LinkedIn, blog, StackOverflow
Bedňa avatar 24.11.2009 07:30 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ferš píše
KERNEL ULTRAS video channel >>>
24.11.2009 10:42 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Ne, PDF nechci, protože uživateli nutí vizualizaci (velikost stránky, písma, barvy). A když chci transportovat strukturovaná data, tak proč je navíc balit do PDF, když ho nepotřebuji.
Bedňa avatar 24.11.2009 18:38 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: Popis dokumentu v odesílané zprávě
Ja som chcel hlavne upozorniť na to akého kódera tu na ábičku máme, možno by Ferš helpol.
KERNEL ULTRAS video channel >>>

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.