Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-7941

SamlValidator does not work with chain trust

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • 3.2.7
    • None
    • WS-* Components
    • None
    • Unknown

    Description

      As explained here http://coheigea.blogspot.com/2012/08/subject-dn-certificate-constraint.html, WSS4J supports specifying constraints on the subject DN of the certificate used for signature validation.

      We have successfully applied "direct trust" when receiving SOAP requests containing a signed SAML token.

      We attempted to migrate to "chain trust" by removing the certificate used to sign the requests from the Merlin trust store, and setting an appropriate Subject DN Cert Constraint.

      It did not work. Our analysis is that WSS4J's SamlValidator is not able to handle a scenario where the certificate used to sign the requests is not in the trust store. The problem seems to be in the method findPublicKeyInKeyStore() of Merlin.java.

      We were able to make chain trust (and the Subject DN Cert Constraint) work by including the needed PKI code in a customised SamlValidator, but we would rather not go this route.

      Please fix chain trust in WSS4J SAML validation.

      Attachments

        1. cxf7941.zip
          11 kB
          Tomas Vanhala
        2. obsolete-code.txt
          7 kB
          Tomas Vanhala
        3. request-real-sanitised.xml
          6 kB
          Tomas Vanhala
        4. request-test-broken-sanitised.xml
          8 kB
          Tomas Vanhala
        5. request-test-working-sanitised.xml
          7 kB
          Tomas Vanhala
        6. stacktrace-request-test-broken.txt
          5 kB
          Tomas Vanhala

        Activity

          People

            coheigea Colm O hEigeartaigh
            tomasv Tomas Vanhala
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: