Class XmlSecFassade

java.lang.Object
de.consist.bmu.rule.xmlsec.XmlSecFassade

public final class XmlSecFassade extends Object
Fassade um xmlsec.jar Eigentlich wollten wir Java 6 einsetzen, weil dort gemäß JSR-105 das XML Signature API Bestandteil der RT ist. Nun müssen wir die Library xmlsec.jar selbst einbinden. Die Methode pruefeSignaturen() liefert ein boolean zurück, dass Auskunft über den Status der Signaturprüfung gibt. Done: Alternative für HexDumpEncoder einsetzen (z.B. Hex aus Apache Commons Codec). TODO Womöglich validieren eines frisch geparsten Dokuments erforderlich (Validierung und Defaultwerte); das hat sich wohl erledigt? TODO Hinweis: Sicherheitsprobleme durch präparierte XML-Signaturen http://www.heise.de/newsticker/meldung/93924/ TODO SHA1 ist eigentlich nicht mehr zulässig, aber es hängt vom Zertifikat ab, ob andere Algorithmen unterstützt werden FIXME MD5 müsste eigentlich abgelehnt werden.
  • Field Details

    • XPATH_INTERSECT

      public static final String XPATH_INTERSECT
      XPath-Intersect-Filter.
      See Also:
    • XPATH_SUBTRACT_INCLUDE_PREVIOUS_SIG

      public static final String XPATH_SUBTRACT_INCLUDE_PREVIOUS_SIG
      XPath-Subtract-Filter (schliesst vorhandene Signatur ein).
      See Also:
    • XPATH_SUBTRACT_EXCLUDE_PREVIOUS_SIG

      public static final String XPATH_SUBTRACT_EXCLUDE_PREVIOUS_SIG
      XPath-Subtract-Filter (schliesst vorhandene Signatur nicht ein).
      See Also:
  • Method Details

    • getInstance

      public static XmlSecFassade getInstance()
      Returns:
      XmlSecFassade
    • isUseJSR105

      public static boolean isUseJSR105()
      Returns:
      Gibt an, ob die JSR 105 (Java XML Digital Signature) API bei der Validierung der Signaturen verwendet wird
    • isBcFirst

      public static boolean isBcFirst()
    • setUseJSR105

      public static void setUseJSR105(boolean useJSR105)
      Parameters:
      useJSR105 - Gibt an, ob die JSR 105 (Java XML Digital Signature) API bei der Validierung der Signaturen verwendet werden soll
    • init

      public boolean init()
      Allgemeine Initialisierung von XMLSEC.
      Returns:
      boolean
    • loadBouncyCastle

      public static boolean loadBouncyCastle()
      Lädt den Security-Provider BouncyCastle.
      Returns:
      boolean
    • pruefeSignaturen

      @Deprecated public boolean pruefeSignaturen(Document doc, boolean signatureMustExist, String sigID) throws XmlSecException
      Deprecated.
      Deutsche Funktionsnamen sind nicht professionell
      Parameters:
      doc - das Document, dass die zu prüfenden Signaturen enthält
      signatureMustExist - legt fest, ob Signaturen vorhanden sein müssen
      sigID - String
      Returns:
      true, wenn Signaturen gültig, false wenn Signaturen ungültig
      Throws:
      XmlSecException - XmlSecException
    • verifySignatures

      public List<String> verifySignatures(Document doc) throws XmlSecException
      Parameters:
      doc - Document
      Returns:
      List
      Throws:
      XmlSecException - XmlSecException
    • verifySignature

      public boolean verifySignature(Document doc, String sigId) throws XmlSecException
      Parameters:
      doc - Document
      sigId - String
      Returns:
      boolean
      Throws:
      XmlSecException - XmlSecException
    • verifySignatureApache

      public boolean verifySignatureApache(Element signElement) throws XmlSecException
      Check Signatures using apache xmlsec implementation.
      Parameters:
      signElement - Element
      Returns:
      true, wenn Signaturen gültig, false wenn Signaturen ungültig
      Throws:
      XmlSecException - XmlSecException
    • unmarshalECDSAKeyValue

      public PublicKey unmarshalECDSAKeyValue(Element kvtElem) throws MarshalException
      Throws:
      MarshalException
    • validateX509Certificate

      public boolean validateX509Certificate(Element sigElem)
      Parameters:
      sigElem - Signatur-Element
      Returns:
      true, wenn das X509Certificate zum KeyValue passt, sonst false
    • pruefeSignaturen0

      @Deprecated protected boolean pruefeSignaturen0(Document doc, boolean signatureMustExist, String sigID) throws MarshalException, XMLSignatureException, XmlSecException
      Deprecated.
      Deutsche Funktionsnamen sind nicht professionell
      Parameters:
      doc -
      signatureMustExist -
      sigID -
      Returns:
      true, wenn Signaturen gültig, false wenn Signaturen ungültig
      Throws:
      MarshalException
      XMLSignatureException
      XmlSecException