# Eszközök

# Eszközök

* [uApprove](https://help.edu.hu/books/elavult-archiv/page/uapprove): User-consent (beleegyezési nyilatkozat) eszköz
* [SamlSign](https://help.edu.hu/books/kiegeszito-tudnivalok/page/samlsign): Metaadat aláíró és ellenőrző eszköz

# SamlSign

Parancssoros eszköz, melyhez debian alatt az `opensaml2-tools` csomagot kell telepíteni. A program kétféle üzemmódban képes működni: **metaadat aláírása** és **metaadat ellenőrzése**.

**Metaadat aláírása**

	samlsign -s -k /path/to/mainkey.key -f /path/to/metadatatosign.xml

Alapértelmezés szerint a samlsign az eredményeket az alapértelmezett kimenetre írja ki (STDOUT), így célszerű ezt egy új fájlba átirányítani:

	samlsign -s -k /path/to/mainkey.key -f /path/to/metadatatosign.xml > /path/to/metadatasigned.xml

**Metaadat ellenőrzése**

	samlsign -c /path/to/maincert.crt -f /path/to/metadatatosign.xml


**Samlsign legfontosabb kapcsolói**

* -s ez határozza meg, hogy aláírunk, vagy ellenőrzünk. Ha megadtuk kapcsolóként, akkor a program megpróbálja aláírni a megadott xml fájlt, ha nem, akkor ugyanezt a fájlt ellenőrizni fogja.
* -f az ellenőrzendő/aláírandó fájl elérhetősége **abszolút útvonallal** megadva
* -k a privát kulcs elérhetősége **abszolút útvonallal** megadva
* -c az ellenőrzésre használt publikus kulcs elérhetősége **abszolút útvonallal** megadva
* [További részletes leírás a samlsign man oldalán](http://man.sourcentral.org/debian-unstable/1+samlsign)


**További fontos tudnivalók**
A samlsign nem szereti a metadatában szereplő `Organization`-nel kapcsolatos adatokat, mivel ilyen tag-ekben kötelezően megadandó `xml:lang` attribútumot `lang`-ra alakítja át, ami által viszont nem lesz érvényes (valid) maga a metaadat, így pl. a shibboleth sem fog tudni vele mit kezdeni. A **megoldás** (nem szép, de hasznos): az aláírás előtt álló metaadatokból ki kell szedni az `Organization`-nel kapcsolatos adatokat. Ezek után már gond nélkül aláírja és az eredmény is érvényes lesz.

**Apró trükk a privát kulcs kinyerésére `jks`-ből**

Tekintettel arra, hogy a `keytool` nem teszi lehetőve a privát kulcs kihalászását JavaKeystore-ból, így külső segítséget kell igénybe vennünk. A segédalkalmazás `ExportPrivateKey` névre hallgat, és [innen letölthető egy darab zip fájl](http://www.anandsekar.com/wp-content/uploads/2006/01/ExportPrivateKey.zip). Használata rendkívül egyszerű:

	java -jar ExportPrivateKey.zip {jks fájl elérhetősége} JKS {jks jelszó} {alias} {célfájl}

Ezek után a létrehozott kulccsal már használhatjuk is a samlsign-t.

# Xmltooling Log4cpp patch

```cpp
--- xmltooling/soap/impl/SOAPClient.cpp.orig    2008-03-14 23:50:29.000000000 +0100
+++ xmltooling/soap/impl/SOAPClient.cpp 2008-04-25 13:14:29.000000000 +0200
@@ -89,8 +89,11 @@
     XercesJanitor<DOMDocument> janitor(doc);

     Category& log = Category::getInstance(XMLTOOLING_LOGCAT".SOAPClient");
-    if (log.isDebugEnabled())
-        log.debugStream() << "received XML:\n" << *(doc->getDocumentElement()) << logging::eol;
+    if (log.isDebugEnabled()) {
+        string serializedXml;
+        XMLHelper::serialize (doc->getDocumentElement(),serializedXml,false);
+        log.debugStream() << "received XML:\n" << serializedXml << logging::eol;
+    }

     auto_ptr<XMLObject> xmlObject(XMLObjectBuilder::buildOneFromElement(doc->getDocumentElement(), true));
     janitor.release();
```